2015-09-02 4 views
0

У меня есть изображение внутри ссылки, и я хочу его изменить. Когда текст ссылки больше, изображение должно быть стрелкой вниз, а текст ссылки меньше стрелки вверх.Изменить изображение внутри ссылки с jquery

<a class="morelink"><img src="Slicice/close.png">Pročitaj više</a> 

я попробовал это, но это не будет работать:

$('a').click(function(){ 
    $('a img').attr('src', 'Slicice/open.png'); 
}); 

ответ

3

Попробуйте

$(function(){ 
    $('a').click(function(e){ 
     $('img', this).attr("src",'Slicice/open.png'); 
     e.preventDefault(); 
    }); 
}); 
+0

он работает при загрузке, но не по клику –

+0

Просьба предоставить более подробную информацию. Так что этот якорный тэг создан динамически? – ssilas777

+0

все тот же. –

0

Попробуйте это:

$('a.morelink').click(function(){ 
    $(this).find('img').attr('src', 'Slicice/close.png'); 
}); 
+0

downvoter прокомментировать –

+0

это должно работать, но для меня это не так. может быть, потому что я меняю текст ссылки динамически, он не изменит изображение? –

+0

Можете ли вы показать мне код, как вы меняете текст? –

0

Это должно работать

$(document).on('click', '.morelink', function(){ 
    $(this).find('img').attr("src",'Slicice/open.png'); 
}); 

Проблема с написанным вами кодом wasa заключается в том, что вы выбираете каждое изображение внутри ссылок и меняете их, а не только ссылку, которую вы нажали.

Итак, здесь мы используем $(document).on, чтобы убедиться, что событие запущено в любом динамически добавленном элементе, $(this) внутри функции относится к ссылке, которую вы нажали. Остальное очевидно.

+0

спасибо за руководство, но он все еще не работает. –

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