我使用hoverIntent,作爲其設置的一部分,它將調用一個函數。我想,這就是所謂的「引用」的函數(正確嗎?):如何檢測函數作爲jQuery回調調用時與直接調用?
var HIconfig = {
interval: 250,
sensitivity: 8,
over: myFunction,
timeout: 100,
out: myOtherFunction
};
不過,我想在次再使用該功能,並明確地傳遞一個jQuery對象。所以,我添加了這個函數。
myFunction($myObject){
}
現在的挑戰是弄清函數何時被hoverIntent引用或被顯式調用。我的想法是,我會檢查$(this)是否包含特定的DOM元素:
myFunction($myObject){
if($(this).is('li')){
$myObject = $(this)
};
$myObject.doSomething...
}
但是...我有問題。如果我退出這兩個$(本)和$ myObject的這些結果如下:
通過hoverIntent叫:
$(this) = [li#Trigger-0.nav-main-tab]
$myObject = Object { originalEvent=, more...}
通過明確地傳遞對象
$(this) = [Window PT02-home-page.php#]
$myObject = [li#Trigger-0.nav-main-tab]
我可以測試$(this).is('li')
調用在第一種情況下,這是事實。
我不能在第二,不過,因爲當我嘗試進行測試,Firefox不喜歡它:
g.nodeName is undefined
一個建議是切換到1.4.1,並嘗試測試通過.isPlayObject:
if (jQuery.isPlainObject($myObject))...
這在Firefox中運行得很好。但是,IE8總是返回true。
我的問題:
是我的邏輯簡單的路要走來講怎麼我的函數從hoverIntent與直接叫什麼名字?
如果沒有,是否有一種方法來持續測試,看看我是否明確地將對象傳遞給函數中的變量?
插件將是我的終極目標。但我可能沒有時間來發布這個版本。單獨的功能是有意義的(並且事後很簡單!) – 2010-02-07 17:09:47