当我尝试将多个事件绑定(bind)到同一对象时,我想到了这个问题。我仍在努力寻找最简单的解决方案。
假设我们有这个标记:
<select class="class1 class2">
<option>Value 1</option>
<option>Value 2</option>
<option>Value 3</option>
</select>
<p></p>
还有两个方法绑定(bind)到 select
用于 change
事件:
$(".class1").on("change", function() {
// first method for change
$("p").append("<div>Event for class1</div>");
});
$(".class2").on("change", function() {
// second method for change
$("p").append("<div>Event for class2</div>");
});
现在,如果您进行选择更改,p
的内容将是:
Event for class1
Event for class2
我的“研究”问题是如何重写second on
处理程序以使其首先 触发其处理程序。所以最后p
的内容应该是:
Event for class2
Event for class1
情况是我们无法交换源代码中的 on
语句。
你有什么想法?
最佳答案
有解决方案。一个例子是 preBind
by Jonathan Conway .
这个插件为一个元素操纵 jQuery 的事件处理程序列表,并在它的前面而不是最后添加一个事件。
因此,您在之前使用 bind
的地方使用了 $(...).preBind
。这不适用于 $(...).on
但可以很容易地从中得到类似的解决方案。
然而,我会强烈建议您不要这样做,因为争夺第一名的赛事通常是不良架构的标志。
关于javascript - 如何在当前之后调用先前绑定(bind)的事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10422606/