Jquery изменить изображение при нажатии - PullRequest
15 голосов
/ 06 апреля 2011

В настоящее время я создаю полный макет фонового изображения и хочу изменить изображение в зависимости от того, какую страницу посещает пользователь. Чтобы добраться до сути: мне нужно изменить атрибут изображения, когда пользователь нажимает на ссылку. Вот как далеко я добрался:

$(function() {
  $('.menulink').click(function(){
    $("#bg").attr('src',"img/picture1.jpg");
  });
});

    <a href="" title="Switch" class="menulink">switch me</a>
    <img src="img/picture2.jpg" id="bg" />

Спасибо, наверное, легко, но над моей головой!

Ответы [ 6 ]

24 голосов
/ 06 апреля 2011

Он переключается обратно, потому что по умолчанию, когда вы щелкаете ссылку, она переходит по ссылке и загружает страницу.В твоем случае ты этого не хочешь.Вы можете предотвратить это, выполнив e.preventDefault ();(как упомянул Нил) или вернув false:

$(function() {
 $('.menulink').click(function(){
   $("#bg").attr('src',"img/picture1.jpg");
   return false;
 });
});

Интересный вопрос о различиях между предотвращением дефолта и возвратом false.

В этом случае возвращать false будетработает просто отлично, потому что событие не нужно распространять.

4 голосов
/ 06 апреля 2011

я помогу тебе в одну секунду, сделаю тебя скрипкой ^ _ ^

UPDATE

вам нужно использовать preventDefault(), чтобы ссылка не проходила при нажатии на нее:

скрипка: http://jsfiddle.net/maniator/Sevdm/

$(function() {
 $('.menulink').click(function(e){
     e.preventDefault();
   $("#bg").attr('src',"img/picture1.jpg");
 });
});
2 голосов
/ 27 февраля 2017
 $('div#imageContainer').click(function () {
      $('div#imageContainerimg').attr('src', 'YOUR NEW IMAGE URL HERE'); 
});
2 голосов
/ 27 апреля 2013

Вы можете использовать функцию "attr" !!! st like `$ (" # id "). attr ('src'," source ");

1 голос
/ 30 декабря 2016

Когда вы нажимаете текст или ссылку, изображение будет изменено на другое изображение, поэтому вы можете использовать приведенный ниже скрипт, который поможет вам изменить изображение при нажатии на ссылку:

<script>
$(document).ready(function(){
$('li').click(function(){
var imgpath = $(this).attr('dir');
$('#image').html('<img src='+imgpath+'>');
});
$('.btn').click(function(){
$('#thumbs').fadeIn(500);
$('#image').animate({marginTop:'10px'},200);
$(this).hide();
$('#hide').fadeIn('slow');
});
$('#hide').click(function(){
$('#thumbs').fadeOut(500,function (){
$('#image').animate({marginTop:'50px'},200);
});
$(this).hide();
$('#show').fadeIn('slow');
});
});
</script>




 <div class="sandiv">
    <h1 style="text-align:center;">The  Human  Body  Parts :</h1>
    <div id="thumbs">
    <div class="sanl">
    <ul>
    <li dir="5.png">Human-body-organ-diag-1</li>
    <li dir="4.png">Human-body-organ-diag-2</li>
    <li dir="3.png">Human-body-organ-diag-3</li>
    <li dir="2.png">Human-body-organ-diag-4</li>
    <li dir="1.png">Human-body-organ-diag-5</li>
    </ul>
    </div>
    </div>
    <div class="man">
    <div id="image">
    <img src="2.png" width="348" height="375"></div>
    </div>
    <div id="thumbs">
    <div class="sanr" >
    <ul>
    <li dir="5.png">Human-body-organ-diag-6</li>
    <li dir="4.png">Human-body-organ-diag-7</li>
    <li dir="3.png">Human-body-organ-diag-8</li>
    <li dir="2.png">Human-body-organ-diag-9</li>
    <li dir="1.png">Human-body-organ-diag-10</li>
    </ul>
    </div>
    </div>
    </div>

css:

<style>
body{ font-family:Tahoma, Geneva, sans-serif; color:#ccc; font-size:11px; margin:0; padding:0; background-color:#111111}
.sandiv{ width:980px;height:570px;margin:0 auto;margin-top:20px; padding:10px; background-color:#000;-webkit-box-shadow: 0 1px 2px #666;box-shadow: 0 1px 2px #666;}
#image{width:348px; height:375px; border-radius:100%;margin:0 auto; margin-top:50px; margin-bottom:20px;}
#thumb{width:400px;margin:0 auto; display:none;}
ul{list-style:none; padding:0; margin:0;}
 li{ width:auto ; height:50px; border-radius:100%; margin:5px; cursor:pointer; }
.sanl
{
 margin-top:50px;
 float:left;
 width:210px;
 margin-left:30px;
 margin-right:30px;
  }
.sanr
{
    margin-top:50px;
 float:left;
 width:210px;
 margin-left:60px;
 margin-right:30px;
}
.man
{
 float:left;
 width:350px;
 margin-left:30px;
 margin-right:30px; 
}
</style>

Я думаю, что приведенный выше код очень полезен для вас.Этот код я получаю от здесь или демо здесь для вашей справки

1 голос
/ 06 апреля 2011

Вы должны рассмотреть возможность использования кнопки для этого. Ссылки обычно следует использовать для ссылки . Кнопки можно использовать для других функций, которые вы хотите добавить. Решение Neals работает, но это обходной путь.

Если вы используете <button> вместо <a>, ваш исходный код должен работать должным образом.

...