舉例來說,如果我有:jQuery懸停如何知道如何撤消更改?
$("tag").hover(function() {
$("#overlay").toggle();
});
如何jQuery的知道如何不應用的toggle
改變鼠標離開時?上面列出的代碼與一樣工作,但我想知道jQuery如何知道我在回調中做了哪些更改?我的問題不是如何手動撤消更改,因爲我知道如何做到這一點,而是如何自動撤消在回調函數中設置的更改?
舉例來說,如果我有:jQuery懸停如何知道如何撤消更改?
$("tag").hover(function() {
$("#overlay").toggle();
});
如何jQuery的知道如何不應用的toggle
改變鼠標離開時?上面列出的代碼與一樣工作,但我想知道jQuery如何知道我在回調中做了哪些更改?我的問題不是如何手動撤消更改,因爲我知道如何做到這一點,而是如何自動撤消在回調函數中設置的更改?
有2個版本.hover
功能,
.hover
2個ARGS
.hover
也有單ARG版本[你擁有的版本]
處理程序都的mouseenter和鼠標離開
$('something').hover(function() {
console.log('I will be called when you mouseenter and mouseleave');
});
從文檔,
.hover(handlerInOut(eventObject))Returns: jQuery
將單個處理程序綁定到匹配的元素,當 鼠標指針進入或離開元素時執行。
handlerInOut(eventObject)類型:Function()當鼠標指針進入或離開元素時執行的函數。
jQuery懸停需要2個函數作爲參數,(處理和處理)。
傳遞的一個參數.hover
使得懸停進出都運行回調 - http://api.jquery.com/hover/#hover2
這是內部實現切換
toggle: function(state) {
var bool = typeof state === "boolean";
return this.each(function() {
if (bool ? state : isHidden(this)) {
jQuery(this).show();
} else {
jQuery(this).hide();
}
});
}
如果你還沒有傳遞的任何參數.toggle
,jQuery使用此內部函數檢查元素是否隱藏(從源代碼中提取):
function isHidden(elem, el) {
// isHidden might be called from jQuery#filter function;
// in that case, element will be second argument
elem = el || elem;
return jQuery.css(elem, "display") === "none" || !jQuery.contains(elem.ownerDocument, elem);
}
啊,好的。我認爲這是以某種方式監控這些變化。我知道了。 – sircodesalot
hmm隨機downvote無評論 –