Javascript jQuery中的事件处理程序序列

Javascript jQuery中的事件处理程序序列,javascript,jquery,html,events,Javascript,Jquery,Html,Events,我正在将事件动态绑定到文本元素。这是我的代码: <input type="text" id="myTxt" /> <script type="text/javascript"> function attachEvent1(element){ element.keyup(function(){ console.log("Event:"+event.keyCode); }); } functio

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

<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>

函数attachEvent1(元素){
element.keyup(函数(){
日志(“事件:+Event.keyCode”);
});
}
功能附件2(元件){
element.keyup(函数(){
console.log(“值:“+this.Value”);
});
}   
附件1($('myTxt'));
附件2($('myTxt'));
我需要的是,我希望第二个事件处理程序(由attachEvent2连接)首先被调用,即使它绑定在attachEvent1之后。
在jQuery中可能吗?

这样的东西怎么样:

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'));

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

不是现成的,不是。你需要深入到
jQuery中。_data
object expandos,存储事件处理程序的位置,并对函数重新排序。在要首先执行的处理程序末尾,可以触发一个事件,并将第二个处理程序绑定到此事件。jQuery故意保证事件处理程序将按照其绑定的顺序被调用。你可以绑定一个代理函数,它知道调用其他函数的顺序。您可以通过搞乱内部API来解决问题。但不幸的是,自从版本1.8+以来,它们发生了变化,所以我更新了我的答案。这也是为什么不使用jqueryapi,而应该在jQuery之上创建自己的API层来控制顺序的原因@阿努拉格。谢谢你能把你的评论移到一个答案上吗?这样我就可以接受你的回答了。