JavaScript: 如何改变事件顺序?
JavaScript: How to change the order of events?
是否可以更改事件的顺序以首先使用消息 Huh?
调用警报功能,然后才使用 'Yeah!' 消息调用警报功能?
<div class="elem" onclick="alert('Yeah!')"></div>
我的 jQuery 代码。
$('.elem').click(function () {
alert('Huh?');
})
Link 到 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);
});
但是你可以用很多方法来做到这一点。
首先,您可以删除属性 "onclick"。您可以使用 javascript。
$('.elem').removeAttr("onclick");
$('.elem').click(function () {
alert('Whatever you want');
alert('Huh?');
})
这是一个link:http://www.w3docs.com/learn-javascript/javascript-events.html
是否可以更改事件的顺序以首先使用消息 Huh?
调用警报功能,然后才使用 'Yeah!' 消息调用警报功能?
<div class="elem" onclick="alert('Yeah!')"></div>
我的 jQuery 代码。
$('.elem').click(function () {
alert('Huh?');
})
Link 到 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);
});
但是你可以用很多方法来做到这一点。 首先,您可以删除属性 "onclick"。您可以使用 javascript。
$('.elem').removeAttr("onclick");
$('.elem').click(function () {
alert('Whatever you want');
alert('Huh?');
})
这是一个link:http://www.w3docs.com/learn-javascript/javascript-events.html