2011-02-03 55 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; 
      });