2013-02-12 3 views
0

Я попытаюсь объяснить как можно больше, я просто хочу изменить src тега img, когда мышь над ним {on Hover}; HTML-код являетсяJQuery hover не работает

<ul id="nav-tabs" data-tabs="tabs"> 
    <li id="test" style="list-style: none;" class="active"> 
    <a href="#home" data-toggle="tabs" ><img src="assets/img/button_home_selected3.png" id="test2" width="83"/><span s>Home</span></a> 
    </li> 
</ul> 

литиево теги динамически добавляются с помощью сценария

$('.plus').click(function(e) { 
e.preventDefault(); 
var li_count = $('#nav-tabs').length; 
if (li_count <= 3){ 
    if(counter <= 3){ 
    $('#nav-tabs').append('<li id="test" ><a href="#tab' + counter + '" data-toggle="tabs" ><img src="assets/img/button_home_plain1.png" width="83" id="test2">Tab' + counter + '</span><button type="button" class="close">&times;</button></a></li>'); 
} else { alert("Only 3 Tabs Allowed!")}; 
} 

также есть один активный тег, который позволяет переключаться между вкладками, который осуществляется с помощью скрипта

$('li#test').each(function() { 
if($(this).hasClass('active')) 
{//Active class is applied 
    $(this).children().children().attr("src", "assets/img/button_home_selected3.png"); 
} 
else 
{ 
    $(this).children().children().attr("src", "assets/img/button_home_plain.png"); 
} 

});

Я пытался что-то, но он не работает, может быть я кладя его где-нибудь, ijust не знаю

$('#test2').hover(function(e) { 
    e.preventDefault(); 
    if ($(this).attr('src') == 'assets/img/button_home_plain1.png') 
    { 
    $(this).attr('src','assets/img/button_home_mouseOver1.png'); 
    } 
}); 
+0

вы, вероятно, затрачиваемое возраст делает это, но это легче сделать такого рода вещи с CSS, поскольку это более или менее то, что делает CSS. eghttp: //www.onextrapixel.com/2009/05/12/how-to-create-pure-css-rollover-to-display-single-or-multiple-elements-at-remote-area/ Вы можете установить классы в javascript, но все операции по обмену изображениями в CSS. – matpol

+0

Вы добавляете несколько элементов Li с одинаковыми идентификаторами и изображениями. вместо этого вы можете использовать классы. – ryadavilli

+0

У вас есть все в $ (document) .ready (function() {})? , а также не пытайтесь добавить jquery.min script – Neel

ответ

0

Вы можете попробовать использовать .data(), чтобы следить за оригинальный URL и .on() (JQuery> = 1,7) для регистрации обратных вызовов для событий:

$("#nav-tabs").on("mouseover", "#test2", function(){ 
    $(this).data("originalSrc", $(this).attr("src")); 
    $(this).attr("src", "assets/img/button_home_mouseOver1.png"); 
}); 

$("#nav-tabs").on("mouseout", "#test2", function(){ 
    $(this).attr("src", $(this).data("originalSrc")); 
}); 

http://api.jquery.com/on/

+0

thanx alot, я сам работал над mouseOver, но если вы прочитали мой код выше, вы можете видеть, что есть активный класс, который переключает между тегами li, теперь я просто хочу, чтобы исходный src на mouseout, так как он либо отобразил изображение, либо обычное изображение, таким образом, будет всего 3 изображения. знаете ли вы какой-либо способ найти исходный src тега img, чтобы я мог поместить его внутри мыши. – Hunain

+0

Отредактировал мой ответ, чтобы отслеживать URL-адрес. Этот пример потерпит неудачу, если по какой-либо причине событие mouseout будет вызываться до 'mouseover', но это довольно легко исправить, если это проблема в вашем случае. – pckill

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