javascript - 如何改变事件的顺序?

标签 javascript jquery dom jquery-events

是否可以更改事件的顺序以首先使用消息 Huh? 调用警报功能,然后才使用“是的!”发出下一个警报消息?

<div class="elem" onclick="alert('Yeah!')"></div>

我的 jQuery 代码。

$('.elem').click(function () {
    alert('Huh?');
})

jsFiddle 链接:http://jsfiddle.net/84Lyq3n9/

最佳答案

这个怎么样:

var inline_click_handler_src = $('.elem').attr('onclick');
var inline_click_handler = new Function('e', inline_click_handler_src);
$('.elem').removeAttr('onclick');

$('.elem').click(function () {
    alert('Huh?');
    inline_click_handler();
});

[编辑] 或者不用标记内容:

var el = $('.elem').get(0);
var inline_click_handler = el.onclick;
el.onclick = null;

$('.elem').click(function () {
    alert('Huh?');
    inline_click_handler();
});

[再编辑] 如果您的内联点击处理程序使用 this,请使用 function.call() 来设置执行上下文:

var el = $('.elem').get(0);
var inline_click_handler = el.onclick;
el.onclick = null;

$('.elem').click(function () {
    alert('Huh?');
    inline_click_handler.call(el);
});

关于javascript - 如何改变事件的顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28400872/

相关文章:

javascript - Firebase 的异步/等待云功能,性能低下

javascript - 如何在php页面中多次使用同一个onclick函数?

jquery - CSS/HTML - Bootstrap 下拉菜单,具有相同的类,位于不同的链接下

jquery - 如何在不削弱 CPU 的情况下向 IE 添加大量 HTML

javascript - 分组图表栏上的 d3 栏标签

javascript - CSS 选择器 .find (">div.childCollapsible>div[data-onthemovecollapsible=true]") 不遵守父级限制

javascript - jQuery 在拖动时使用右键单击旋转 div

javascript - 合并两个对象而不添加新属性

java - 一次读取 xml 元素的所有属性

javascript - Ajax 调用阻止其他 javascript 代码