2013-02-23 7 views
1

Эй, так что я нашел это jsfiddle http://jsfiddle.net/dEHZZ/1/JQuery замена изображения не работает

$('div#thumbs img').click(function() { 
$('#mainimg img').prop('src', $(this).prop('src')); 
return false; //stop link from navigating 
}) 

прокрутке некоторые вопросы здесь, однако он не работает, когда я пытаюсь реализовать его здесь http://ra-yon.com/beta/Test_sites/HFE/products/IR155R926.php

Любые идеи?

ответ

1

Ваш код JQuery запускается перед вашей DOModel чтения и готов манипулировать

Используйте документ ready функция

$(function(){ // DOM ready to be manipulated 

    $('div#thumbs img').click(function(e) { 
     e.preventDefault(); //stop link from navigating 
     $('#mainimg img').prop('src', this.src); 
    }); 

}); 

Кроме того, в вашем коде, я не вижу никакой связи, так что на самом деле вы впадина нужен какой-либо return false не event-preventDefault() (я)

http://api.jquery.com/ready/

+0

Работал красиво, спасибо! – matture

1

Оберните JQuery в document ready call

$(document).ready(function() { 
    $('div#thumbs img').click(function() { 
     $('#mainimg img').prop('src', $(this).prop('src')); 
     return false; //stop link from navigating 
    }) 
}); 

jsFiddle делает это автоматически, поэтому он работает там.

1

Поместите свой код в готовом методе:

$(document).ready(function(){ 
    $('div#thumbs img').click(function() { 
    $('#mainimg img').prop('src', $(this).prop('src')); 
    return false; //stop link from navigating 
    }) 
}); 

Вы экземпляр кода перед DOM элементы будут готовы.

+1

Я не спустил вниз вас, но я могу понять, почему кто-то будет. Вы должны объяснить, что ваш второй пример (и, кстати, .live() был устаревшим в пользу .on()), нужно будет запускать после того, как div был создан в DOM. Где-то до этого было бы бесполезно. – j08691

Смежные вопросы