是否可以为一个onkeypress事件设置多个函数

时间:2012-05-17 14:47:04

标签: javascript

我有这个:

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构造允许这样做。

2 个答案:

答案 0 :(得分:2)

开始阅读关于DOM事件...设置元素的属性是古老的方式...使用addEventListener()removeEventListener()用于普通(意味着不是IE系列)。或者对IE6使用attachEvent()detachEvent()(我想也是IE7)

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

答案 1 :(得分:1)

我知道你正在做这样的事情:

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

你可以这样做:

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