有可能通过将当前的事件处理到新的处理要做到这一点:
domNode.onmouseover = function()
{
console.log('first handler');
}
domNode.onmouseover = (function (current)
{
return function()
{
current();//call handler that was set when this handler was created
console.log('new handler');
};
})(domNode.onmouseover);//pass reference to current handler
See this fiddle,看到它在行动
你可以继续做这就像你想/需要:
domNode.onmouseover = function()
{
console.log('first handler');
}
domNode.onmouseover = (function (current)
{
return function()
{
current();
console.log('second handler');
};
})(domNode.onmouseover);
domNode.onmouseover = (function (current)
{
return function()
{
current();
console.log('third handler');
};
})(domNode.onmouseover);
这将记录:
first handler
second handler
third handler
这就是它的全部!
这里没有jQuery标签,而且这根本不回答问题,问题是如何在不取消设置第一个处理程序的情况下绑定_second_处理程序。 –
啊你的权利!你的代码会做的伎俩=)抱歉。 –
只是一个侧面提示:将所有内容封装在'.ready'回调函数中并不是标准的JS实践,事实上,在某些情况下,即使在DOM完全加载之前,您希望代码尽快运行 –