2012-02-06 22 views
0

我有一個共同的事件處理程序,我的選擇按鈕:如何基於哪個HTML元素觸發常用處理函數來調用附加函數?

我的代碼是:

$(document).ready(function(){$("#delAppSelectApp,#userAppSelectApp,#hexSelectApp,#countSelectApp").change(function(){ 
    ...... 
    });}); 

我怎麼會叫一個附加功能,如果改變「countSelectApp」選擇觸發 常見的處理程序。

我嘗試使用

alert(this.toSource()) 

,以確定它可以選擇觸發的處理程序,但我得到的只是警告說

[object HTMLelement] 

回答

4

在你的事件處理程序的jQuery設置this是,該事件適用於DOM元素,這樣你就可以直接訪問任何屬性或方法適用於DOM事件,或者你可以將它封裝在一個jQuery調用中,作爲$(this)來訪問jQuery方法。

所以,在我看來,以測試它是否是「countSelectApp」該事件適用於最簡單的(當然最有效的)方法就是使用this.id

if (this.id === "countSelectApp") { 
    // call your function here 
} 

順便說一句,而不是列表中的所有元素ID在你的jQuery選擇我傾向於給這些因素的共同類,說「selectApp」,然後使用類作爲一個選擇綁定的更改處理:

$(".selectApp").change(function() { 
    if (this.id === "countSelectApp") { 
     // call your function here 
    } 
... 
}); 
+0

添加類....爲什麼我不覺得那個?謝謝 !!! – dinchakpianist 2012-02-06 11:38:37

1

您可以使用event object的;

$('selector').change(function(event) { 
    console.log(event.target); 
}); 
2

問:

if($(this).attr('id')=="countSelectApp") 
    callYourFunction(); 
相關問題