Javascript 是否允许先触发其他绑定元素事件?
是否有一种方法允许同一对象(例如textbox)的其他绑定事件首先触发/触发 假设两个事件绑定到同一个文本框。两个键控事件。在我的例子中,有一个插件绑定它自己的事件,但是代码的编写方式,首先绑定的是我的插件。我不想让我的先开火Javascript 是否允许先触发其他绑定元素事件?,javascript,jquery,Javascript,Jquery,是否有一种方法允许同一对象(例如textbox)的其他绑定事件首先触发/触发 假设两个事件绑定到同一个文本框。两个键控事件。在我的例子中,有一个插件绑定它自己的事件,但是代码的编写方式,首先绑定的是我的插件。我不想让我的先开火 $("#firstname").keyup(function() { // ...is there anyway to allow the other keyup event to fire first, from here? // do my work
$("#firstname").keyup(function() {
// ...is there anyway to allow the other keyup event to fire first, from here?
// do my work here...
}
$("#firstname").keyup(function() {
// the plugin work.
}
我需要使用keyup,已经有了keyup事件。你真的应该重写你的代码,让它只有一个keyup绑定到那个事件,但是如果这不可行,你可以用信号量把它弄脏,把你的功能从绑定中分离出来,这样就可以从任何一个绑定中调用它
var semaphore = 0; // on init
$("#firstname").keyup(function () { // this one should run first
semaphore++;
if (semaphore === 0) {
first_action();
}
}
$("#firstname").keyup(function () { // this one should run second
if (semaphore > 1) { // you know the first event fired
second_action();
}
else if (semaphore < 1) {
first_action();
second_action();
semaphore++;
}
}
var信号量=0;//关于init
$(“#firstname”).keyup(函数(){//应该首先运行这个函数
信号量++;
if(信号量===0){
第一个动作();
}
}
$(“#firstname”).keyup(函数(){//这个应该在第二个运行
如果(信号量>1){//您知道第一个触发的事件
第二个动作();
}
else if(信号量<1){
第一个动作();
第二个动作();
信号量++;
}
}