0
基本上我取消綁定mouseleave
被點擊的元素之後。但我想有mouseleave
-event該元素被點擊另一個元素再次工作。我的代碼正在工作,但感覺很龐大,因爲我在代碼中重複動畫。更好的解決剿「鼠標離開」暫時
難道就沒有別的方法來剿了mouseleave
比解除綁定和「重新綁定」暫時其它?有什麼建議麼 ?
HTML
<div class="container">
CONTAINER ONE
</div>
<div class="container">
CONTAINER TWO
</div>
JS:
$(document).ready(function()
{
//the default hover-event
$('.container').hover(
function(){
$(this).stop().animate({'padding-bottom':'10px'},{queue:false,duration:160});
},
function() {
$(this).stop().animate({'padding-bottom':'0px'},{queue:false,duration:160});
}
);
$('.container').click(function(e) {
e.preventDefault();
// enables the mouseleave for all other `.container`s again.
// also bring the old clicked element into unhovered position again
$('.container')
.bind('mouseleave',function() {
$(this).stop().animate({'padding-bottom':'0px'},{queue:false,duration:160});
}).not(this).stop().animate({'padding-bottom':'0px'},{queue:false,duration:160});
// supress the mouseleave for the clicked element
$(this).unbind('mouseleave');
})
});
+1肯定更具可讀性,可能也更快一點!感謝你,應該首先想到這樣的事情。讓我們看看是否還有更加複雜的解決方案...... – Anonymous