2011-02-03 28 views
0

我用我的asp.net页面上的ptTimeSelect控制时间触发onb​​eforeunload。我有一些JavaScript/jQuery来处理onbeforeunload事件,并在用户离开页面之前显示一条消息。但是,TimeSelect控件似乎也会触发onb​​eforeunload事件(在IE 8中,我认为它不在Firefox中)。当用户没有真正离开页面时,这导致混淆了关于离开页面的弹出窗口。jQuery的选择时间选取每次被点击

任何人有一个想法是什么原因造成的?当点击时间选择控件时,如何阻止事件发生 - 但在用户真正离开页面时保持发射状态?

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

回答

1

我发现在这个堆栈溢出发布的解决方案:

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

看来,问题是,在IE浏览器页面上的任何链接在激发onbeforeunload点击时,除非它是链接到同一页面。

添加“返回false”,以每个环节的onclick事件(大部分在ptTimeSelect控制元素是火了JavaScript,但不会去任何地方的链接)。由于我没有想真正改变ptTimeSelect.js文件在我的项目我重视我的onclick事件的代码通过jQuery的链接。这里是我把我的页面上的代码(上有一个时间选择控件实例的页面):

  $('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; 
      });