JavaScript:如何更改事件的顺序?

时间:2015-02-09 00:00:30

标签: javascript jquery dom javascript-events

是否可以更改事件的顺序,以便首先使用消息Huh?调用警报功能,然后再使用'是的下一个警告!'消息?

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

我的jQuery代码。

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

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

2 个答案:

答案 0 :(得分:2)

这个怎么样:

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

答案 1 :(得分:0)

但你可以用很多方法做到这一点。 首先,您可以删除属性&#34; onclick&#34;。您可以使用javascript进行操作。

&#13;
&#13;
$('.elem').removeAttr("onclick");

$('.elem').click(function () {
    alert('Whatever you want');
    alert('Huh?');
})
&#13;
&#13;
&#13;

这是一个链接:http://www.w3docs.com/learn-javascript/javascript-events.html