我的onbeforeunload函数有问题,但我找不到它

时间:2011-08-11 18:18:02

标签: javascript jquery internet-explorer internet-explorer-8

这是我在jsfiddle上的工作示例,它几乎在所有浏览器上工作(我在IE9,Firefox,Chrome上测试过),除了IE8,它表现得很奇怪:类更改按钮(mavis或test1)只有在你点击两次才有效

http://jsfiddle.net/Qq2tk/

如果你把setConfirmUnload函数放在jscript的顶部,就像在我的例子中一样,在这个函数之前:

    $(".temasec").live("click", function()

并单击类更改按钮“mavis”或“test1”,它在第一次单击时没有执行任何操作,但它在第二次单击时起作用。这只发生在IE8中(可能在IE7和IE6中,未经测试)

因此,如果在类更改函数之后移动setConfirmUnload函数,则其工作正常。

这段代码有什么问题?特别适用于IE8,因为它仅在IE8上表现得很奇怪。

感谢您的帮助。

信守

2 个答案:

答案 0 :(得分:0)

看起来live并不能很好地支持变更事件。

检查一下 http://api.jquery.com/live

  

粘贴和重置事件,以及使用时的更改   .live()方法不完全支持“file”类型的输入,   由于在Internet Explorer中模拟事件冒泡的问题。在   在这些情况下,可以使用.bind()方法。

尝试使用livequery代替

答案 1 :(得分:0)

你应该尝试使用jQuery“unload”事件:

$(窗口).unload(unloadMessage);