2012-07-09 154 views
0
 $("#theDiv").hover(function(){ 
      $(this).animate({top: "300px", left: "400px", width: "50px" , height: "50px" },"Fast") 
     }); 

     $("#theDiv").click(function(){ 
      $(this).stop(); 
     }); 

代碼如上。我試圖停止懸停功能,當我點擊它,但它不起作用。或者根本不可能?通過點擊功能停止懸停功能

回答

0
$("#theDiv").on({ 
    mouseenter: function() { 
     $(this).animate({top: "300px", left: "400px", width: "50px" , height: "50px" },"Fast"); 
    }, 
    click: function() { 
     $(this).off('mouseenter').stop(true); 
    } 
}); 

FIDDLE

+0

我建議這個答案的變化,用'的setTimeout()'函數來重新啓用了mouseenter,讓用戶有足夠的時間移動他們的鼠標遠離元素並避免重新觸發懸停。 – Ohgodwhy 2012-07-09 02:58:39

+0

問題是「如何停止懸停功能」,你確定OP會希望它在設定的時間後重新開始嗎? – adeneo 2012-07-09 02:59:57

+0

我在生活中唯一確定的兩件事就是死亡和稅收。我只是在想,如果能夠對動畫進行可重新渲染,將會很好,因爲位於視口中間的元素可能會成爲入侵的一部分。我的意思不外乎,對不起。 – Ohgodwhy 2012-07-09 03:03:12

1
$("#theDiv").mouseenter(function(){ 
    $(this).animate({ 
     top: "300px", 
     left: "400px", 
     width: "50px" , 
     height: "50px" 
    } , "fast"); 
}).click(function(){ 
    $(this).stop(true, false); 
}); 

.stop([clearQueue] [, jumpToEnd])

+0

這不起作用,點擊後您將移動鼠標的第二個觸發器。 – Ohgodwhy 2012-07-09 02:57:10