2015-09-25 51 views
0

我有工作的優良「的mouseenter」和「鼠標離開」獨立jQuery函數:爲什麼這個懸停切換jQuery不工作?

$('#imgPostTravel').mouseenter(function() { 
    $('#imgPostTravel').addClass('popout_image'); 
    $('#imgPostTravel').addClass('shadow'); 
}); 

$('#imgPostTravel').mouseleave(function() { 
    $('#imgPostTravel').removeClass('popout_image'); 
    $('#imgPostTravel').removeClass('shadow'); 
}); 

...但我希望把它合併到一個「懸停」切換操作。

我首先要確保它確實有效,所以試穿了的jsfiddle here如下:

$("ptVerbiage").hover(function() { 
    $(this).val('yep!'); 
}, function() { 
    $(this).val('nope!'); 
}); 

我試過,除了設置「VAL」的價值幾件事情(改變「已禁用」 attr,改變顏色,背景顏色等),但他們都沒有做一件事。這是懸停/切換的錯誤方式,或者出了什麼問題?

+2

jQuery有一個['.toggleClass()']( http://api.jquery.com/toggleclass/)函數。 –

+4

'ptVerbiage'!='#ptVerbiage' – tymeJV

+1

'ptVerbiage'元素沒有值屬性。改變你需要使用'.text()'的文本:http://jsfiddle.net/n9sq7x8y/7/ – scrappedcola

回答

3

你似乎缺少#

$("ptVerbiage") =>$("#ptVerbiage")

.val().text();作爲.VAL是輸入

應該是這樣的

$("#ptVerbiage").hover(function() { 
    $(this).text('yep!'); 
}, function() { 
    $(this).text('nope!'); 
}); 

http://jsfiddle.net/n9sq7x8y/4/

4

你忘了包括hashtag要參考的ID。此外,您的目標元素是h2,它沒有.val()方法,因爲它不是表單(文本)輸入。您必須改用.text()

代碼的部分應該是這樣的(jsFiddle):

$("#ptVerbiage").hover(function() { 
    $(this).text('yep!'); 
}, function() { 
    $(this).text('nope!'); 
}); 
0

利用大家的建議,這是什麼在起作用:

$("#imgPostTravel").hover(function() { 
    $(this).addClass('popout_image'); 
    $(this).addClass('shadow'); 
}, function() { 
    $(this).removeClass('popout_image'); 
    $(this).removeClass('shadow'); 
});