我在asp.net应用程序中使用jquery onbeforeunload事件。 如果我按下面给出的那样编写事件,那么它的工作正常并显示确认对话框。
var vGlobal = true;
var sMessage = "Leaving the page will lost in unsaved data!";
[工作]
> window.onbeforeunload = function() {
> if (vGlobal == false) return
> sMessage; }
但如果我使用下面给出的绑定方法
,它就无法正常工作[不工作]
$(window).bind("beforeunload", function(e) {
if (vGlobal == false)
return sMessage;
});
有人建议我为什么不工作。这两种方法之间有什么区别。
aspx上的代码:
<asp:TextBox ID="txtName" runat="server"></asp:TextBox>
答案 0 :(得分:1)
您需要绑定文档就绪事件中的所有事件。
答案 1 :(得分:0)
除了vGlobal
是true
并且您正在检查if (vGlobal == false)
这一事实之外,这有点像$(document).ready()问题。
即。你应该将声明放在document.ready()处理程序中,如下所示:
$(document).ready(function(){
$(window).bind("beforeunload", function(e) {
if (vGlobal == false)
return sMessage;
});
});
答案 2 :(得分:0)
使用jQuery将事件绑定到窗口没有任何好处 - 你所做的就是增加让jQuery将窗口解析为jQuery对象的开销,你甚至不使用它。
因此,使用:
window.onbeforeunload = handler;
最好使用jQuery绑定此事件。
您仍然可以在文档就绪部分内执行绑定:
$(document).ready(function () {
window.onbeforeunload = handler;
};