jQuery中的事件处理程序序列

时间:2012-12-04 11:51:41

标签: javascript jquery html events

我正在动态地将事件绑定到文本元素。这是我的代码:

<input type="text" id="myTxt" />

<script type="text/javascript">
    function attachEvent1(element){
        element.keyup(function(){
            console.log("Event:"+event.keyCode);
        });
    }
    function attachEvent2(element){
        element.keyup(function(){
            console.log("Value:"+this.value);
        });
    }   
    attachEvent1($('#myTxt'));
    attachEvent2($('#myTxt'));      
</script>

我需要它,我希望第一个事件处理程序(由attachEvent2附加)首先被调用,即使它在attachEvent1之后被绑定。 在jQuery中可以吗?

1 个答案:

答案 0 :(得分:0)

这样的事情:

function handler1()
{
  console.log("Event:"+event.keyCode);
}

function handler2()
{
  console.log("Value:"+this.value);
}

function attachEvent1(element)
{
  element.keyup(handler1);
}

function attachEvent2(element)
{
  element.unbind('keyup', handler1);
  element.keyup(handler2);
  element.bind('keyup', handler1);
}   

attachEvent1($('#myTxt'));
attachEvent2($('#myTxt'));

如果你想要更高级的东西,你可以保留一个处理程序列表,并在循环中进行重新绑定等,但这种重新绑定事件的基本思想具有预期的效果。