2012-11-01 135 views
1

在jQuery Mobile的項目背後,都有一個對話框(不是彈出),其中一些字段和兩個按鈕樣式像這樣:jQueryMobile對話框關閉按鈕觸發點擊項目它

 <a data-role="button" data-inline="true" data-transition="none" href="#" 
      data-icon="check" data-iconpos="left" id="saveEdit">Save 
     </a> 
     <a data-role="button" data-inline="true" data-transition="none" href="#" 
      data-icon="delete" data-iconpos="left" id="closeEdit">Cancel 
     </a> 

當其中一人是點擊,點擊事件處理程序關閉對話框:

$(document).on("vclick", "#saveEdit", function() { 

    LoginCookie(EditDoc, "Y"); 
    $('.ui-dialog').dialog('close'); 
}); 

然而,當這種情況發生,也燒上的任何東西,這是「背後」的對話框中點擊事件,彷彿你是攻「到」對話按鈕,儘管它仍然觸發按鈕上的點擊事件。有沒有辦法來防止這種行爲?

+0

我相信點擊事件已被設置爲對話框的父母 –

+0

它沒有。另外,並不是它觸發了我在後面的頁面上連接的任何點擊事件代碼,但它在對話框關閉時自動單擊對話框後面的鏈接。 – servarevitas3

+0

在對話框寬度後面放置一個白色透明div:100%,高度:100% –

回答

0

這似乎已經固定它:

$(document).on("vclick", "#saveEdit", function (e) { 


      e.preventDefault(); 


      LoginCookie(EditDoc, "Y"); 
      $('.ui-dialog').dialog('close'); 
     }); 
1

我發現,我的工作是使模態阻塞,特別是laggy接口,像幾乎所有的較舊的Android版本的唯一的事情。您打算讓用戶點擊模式中的元素來關閉它。這裏有一個模式作爲你的處理程序的一部分:

window.setTimeout(function(){ 
     $(myModal).on({ 
      popupbeforeposition: function() { //make the popup blocking - no click outside to close 
       $('.ui-popup-screen').off(); 
      } 
     }).popup("open"); 
    }, 500); 

當然,這意味着用戶不能只在外部敲擊模式來關閉它。但是,如果網頁上有很多表單或其他互動元素,我認爲這對可用性來說是非常關鍵的調整。

相關問題