onbeforeunload 事件需要 Jquery 帮助
我在 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>
I am using jquery onbeforeunload event in asp.net application.
If i write event as given below then its working fine and display confirm dialog box.
var vGlobal = true;
var sMessage = "Leaving the page will lost in unsaved data!";
[ Working ]
> window.onbeforeunload = function() {
> if (vGlobal == false) return
> sMessage; }
but its not working if i use bind method like as given below
[ Not working ]
$(window).bind("beforeunload", function(e) {
if (vGlobal == false)
return sMessage;
});
Anybody suggest me why its not working.Is there any difference between these two methods.
Code on aspx:
<asp:TextBox ID="txtName" runat="server"></asp:TextBox>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
请参阅更新版本
您需要绑定文档就绪事件中的所有事件。
See the updated version
You need to bind all the events inside document ready event.
除了
vGlobal
为true
并且您正在检查if (vGlobal == false)
之外,这听起来像 $(document)。准备好()问题。即,您应该将声明放置在 document.ready() 处理程序中,如下所示:
Apart from the fact that
vGlobal
istrue
and you are checkingif (vGlobal == false)
, this smells like a $(document).ready() issue.I.e. you should place the declaration inside a document.ready() handler as shown here:
使用 jQuery 将事件绑定到窗口没有任何好处 - 您所做的只是增加了让 jQuery 将窗口解析为 jQuery 对象的开销,而您甚至没有使用该对象。
因此,使用:
比使用 jQuery 绑定此事件更好。
您仍然可以在文档就绪部分内执行绑定:
There is no benefit in using jQuery to bind the event to the window - all you are doing is adding the overhead of having jQuery parse the window into a jQuery object, which you aren't even using.
Therefore, using:
Is preferable to using jQuery to bind this event.
You can still perform the binding inside of the document ready section: