2012-05-17 72 views
0

我有這樣的:是否可以設置多種功能於一個onkeypress事件事件

signin_input.onkeypress = function() 
{ 
    label.style.opacity = 0; 
} 

但有時我想運行其他代碼,所以我用這個覆蓋它:

signin_input.onkeypress = function(event) 
{ 
    signin_label.style.opacity = 0; // just add in previous function here 
    if(event.keyCode === 13) 
    { 
     new ControlType('signin').invoke(); 
     return false; 
    } 
} 

,只是包括新函數中舊函數的一行。

但是,當我寫入兩次onkeypress時,這有點低效。

有沒有一種方法可以運行。是否有某種內部JavaScript構造可以允許這樣做。

+0

HA?你能否讓它更清楚些? – gdoron

+0

@gdoron,他希望在單個事件上多次回調... –

回答

2

開始閱讀有關DOM事件...設置元素的屬性是古路...使用addEventListener()removeEventListener()正常(意思是不是IE家族)。或者使用attachEvent()detachEvent()爲IE6(我也想IE7)

最好的方法...使用一些js庫,我推薦jQuery。

+0

您遺漏了現代IE ....我認爲現代IE使用addEventListener()? –

+0

IE8,IE9等.. –

+0

好吧...我想承認,我對IE家族本身有偏見...不知道爲什麼,但它就是這樣...嘿...因爲你說,IE8和IE9工作正常(這很痛苦說這個;) –

1

我知道你正在做的事情是這樣的:

signin_input.onkeypress = function1; 
signin_input.onkeypress = function2; 

你可以做這樣的事情:

signin_input.onkeypress = function(){ 
    if (condition1) function1(); 
    if (condition2) function2(); 
}; 
+0

謝謝...不錯的代碼...我會用這個,如果我找不到和內部的方式....我不認爲這是一個......所以這可能是最合適的。 –

+0

實際上使用addEventListener允許一個設置多個函數..但它可能沒有廣泛的兼容性...必須查看...每個上述答案 –

相關問題