javascript - 如何在当前之后调用先前绑定(bind)的事件?

标签 javascript jquery jquery-events

当我尝试将多个事件绑定(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/

相关文章:

javascript - Firestore : Does querying a collection also includes their sub collection?

javascript - 如何在javascript中读取json文件中的数据以将其用于谷歌图表?

jquery - 创建 3 个 Div,在单击时展开并显示内容

javascript - 如果输入焦点触发 X,否则触发 Y

jquery - 是否使用 delegate()

javascript - 如果对象包含另一个数组中存在值的属性,则过滤对象数组

javascript - 如何确定 Javascript 对象是否是一个事件?

javascript - 单页上有两个具有不同 id 的谷歌地图

javascript - 为什么 onchange 事件带我到新页面?

javascript - "disabling"(灰色文本,无鼠标/键盘)容器内的 jQuery UI 小部件和常规 HTML