将卸载事件添加到div

时间:2012-07-03 15:41:05

标签: javascript jquery

我正在尝试向页面卸载时触发的元素添加事件。我想将事件附加到元素,因为我需要访问私有函数。

我决定尝试向我的元素添加一个unload事件,然后在window.unload事件期间调用此函数,因为该元素通常不会传递给unload事件。

可悲的是,我设法创建了一个无限循环,我尝试使用jQuery函数'one'试图阻止循环,并且还尝试在第一次调用后手动删除卸载甚至绑定。仍然没有运气。我做了一个JsFiddle但决定不链接它,因为它会使你的浏览器崩溃,所以这里是代码。

<div id="myDiv"></div>
$('#myDiv').one('unload', function() { alert('Infinite loop incomming. Sorry :( '); });
$(window).unload(function() { $('#myDiv').unload(); });

任何人都可以提供任何建议或更好的解决方案吗?

1 个答案:

答案 0 :(得分:1)

我在另一个问题中找到了我要找的东西 - Add jQuery function to specific elements

基本上我可以使用jQuery'bind'和'trigger'将自定义事件添加到DOM元素并稍后调用它。

示例:

 <div id="myDiv"></div>

    $('#myDiv').bind('myUnloadFunction', function() { alert('No more loop :D'); });

    $(window).unload(function() { $('#myDiv').trigger('myUnloadFunction'); });