jquery每次单击时选择时间选择器触发器onbeforeunload

时间:2011-02-03 19:55:05

标签: jquery javascript-events

我正在asp.net页面上使用ptTimeSelect控件。我有一些javascript / jquery来处理onbeforeunload事件并在用户离开页面之前显示一条消息。但是,TimeSelect控件似乎也会触发onb​​eforeunload事件(在IE 8中,我认为它不会在firefox中执行)。当用户实际上没有离开页面时,这导致关于离开页面的弹出窗口令人困惑。

有人知道造成这种情况的原因是什么吗?以及如何在单击Time Select控件时停止触发事件 - 但在用户实际离开页面时保持触发?

这是控件: http://pttimeselect.sourceforge.net/doc/files/jquery-ptTimeSelect-js.html

1 个答案:

答案 0 :(得分:1)

我在Stack Overflow帖子中找到了解决方案:

Internet Explorer calling window.onbeforeunload on window.open and AJAX calls

似乎问题是在IE中,页面上的任何链接在点击时都会触发onb​​eforeunload,除非它是指向同一页面的链接。

在每个链接的onclick事件中添加“return false”(ptTimeSelect控件中的大多数元素都是触发javascript但不会去任何地方的链接)。由于我不想在我的项目中实际更改ptTimeSelect.js文件,因此我将onclick事件代码通过jquery附加到链接。这是我在我的页面上放置的代码(其上有一个Time Select控件实例的页面):

           $('a.ptTimeSelectHr').click(function (e) {
                return false;
            });

            $('a.ptTimeSelectMin').click(function (e) {
                return false;
            });

            $('a.ptTimeSelectHrAmPmCntr').click(function (e) {
                return false;
            });

            $('#ptTimeSelectCloseCntr').children('a').click(function (e) {
                return false;
             });

            $('#ptTimeSelectSetButton').children('a').click(function (e) {
                return false;
            });