我正在使用jQuery切換使用jQuery切換方法的<div>
的可見性。在mouseenter和mouseleave事件上觸發切換,從而創建div在mouseenter上摺疊並摺疊在mouseleave上的效果。問題是,如果用戶拖動鼠標幾次,然後離開<div>
,div將切換進出幾次。如果用戶不小心在<div>
中移動鼠標指針,就會發生這種情況。有沒有人對我如何避免這種行爲有任何想法?如何停止在mouseenter/mouseleave上多次觸發切換事件?
Thanx!
我正在使用jQuery切換使用jQuery切換方法的<div>
的可見性。在mouseenter和mouseleave事件上觸發切換,從而創建div在mouseenter上摺疊並摺疊在mouseleave上的效果。問題是,如果用戶拖動鼠標幾次,然後離開<div>
,div將切換進出幾次。如果用戶不小心在<div>
中移動鼠標指針,就會發生這種情況。有沒有人對我如何避免這種行爲有任何想法?如何停止在mouseenter/mouseleave上多次觸發切換事件?
Thanx!
您可以使用更常見的mouseover
/mouseout
事件來獲取不會觸發內部鼠標移動的懸停事件。
但是在鼠標事件上不要使用toggle
,如果是例如,它可能很容易出錯。在頁面加載時鼠標位於元素上方,或者鼠標離開瀏覽器(這可以允許鼠標離開元素邊界而不觸發mouseout
)。對於顯示內容的over
以及隱藏它的out
有單獨的功能。
更好:只是使用hover()
方法,這是專門用於此目的。
除了Cletus的正確答案之外,我想指出使用mouseenter
和mouseleave
事件是沒有錯誤的。訣竅只駐留到stop()
方法,其實我們還可以這樣做:
$("div.someclass").on("mouseenter", function() {
$("...").stop().fadeIn("slow");
});
$("div.someclass").on("mouseleave", function() {
$("...").stop().fadeOut("slow");
});
Here是的jsfiddle例如:)