onbeforeunload 事件需要 Jquery 帮助

发布于 2024-10-12 02:21:12 字数 744 浏览 6 评论 0原文

我在 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>

CLICK ON THIS LINK TO SEE RUNNING EXAMPLE

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

诗化ㄋ丶相逢 2024-10-19 02:21:12

请参阅更新版本

您需要绑定文档就绪事件中的所有事件。

See the updated version

You need to bind all the events inside document ready event.

執念 2024-10-19 02:21:12

除了 vGlobaltrue 并且您正在检查 if (vGlobal == false) 之外,这听起来像 $(document)。准备好()问题。

即,您应该将声明放置在 document.ready() 处理程序中,如下所示:

$(document).ready(function(){
    $(window).bind("beforeunload", function(e) {
        if (vGlobal == false)
            return sMessage;
    });
});

Apart from the fact that vGlobal is true and you are checking if (vGlobal == false), this smells like a $(document).ready() issue.

I.e. you should place the declaration inside a document.ready() handler as shown here:

$(document).ready(function(){
    $(window).bind("beforeunload", function(e) {
        if (vGlobal == false)
            return sMessage;
    });
});
青衫负雪 2024-10-19 02:21:12

使用 jQuery 将事件绑定到窗口没有任何好处 - 您所做的只是增加了让 jQuery 将窗口解析为 jQuery 对象的开销,而您甚至没有使用该对象。

因此,使用:

window.onbeforeunload = handler;

比使用 jQuery 绑定此事件更好。

您仍然可以在文档就绪部分内执行绑定:

$(document).ready(function () {
    window.onbeforeunload = handler;
};

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:

window.onbeforeunload = handler;

Is preferable to using jQuery to bind this event.

You can still perform the binding inside of the document ready section:

$(document).ready(function () {
    window.onbeforeunload = handler;
};
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文