我有一個問題,在第一次嘗試時顯示的DIV沒有關閉。用戶必須至少點擊一次,在頁面的任何位置 - 不必是關閉按鈕,然後才能點擊CLOSE實際關閉DIV。首先,在DIV之前有一個較短的領先優勢。顯示關閉按鈕在DIV沒有響應第一次點擊(或點擊)
我在我的頁面中使用jquery移動彈出框來包含單個文本字段並提交按鈕。它看起來像這樣(減去佈局)。用戶通過該彈出框提交他們的筆記。
<div data-role="popup" id="popupBasic" data-corners="false">
<textarea rows="9" name="note" id="AttitionalNoteText"></textarea>
<a href="#" data-mini="true" id="submitnote" data-role="button">Submit</a>
<a href="#" data-rel="back" id="cancelSubmitNote" data-mini="true" data-role="button">Cancel</a>
</div>
當用戶點擊提交,我執行Ajax響應將文本發送到服務器,並在成功時跟進,通過揭示一個隱藏的DIV作爲向用戶確認。我使用DIV而不是另一個彈出窗口,因爲我意識到在我的ajax調用中鏈接彈出窗口是不可能的。
// this is called when the user hits submit in the popup
$("#submitnote").click(function (e) {
e.preventDefault();
// do stuff here to pass textstring
$("#popupBasic").hide();
$.ajax({
type: 'POST',
data: textstring,
url: '/something/addnote',
success: function (data) {
showConfirm(data); // upon success call the function below to open the DIV
}
});
$("#AttitionalNoteText").val("");
});
function showConfirm(data) {
document.getElementById("confirmMsg").innerHTML = data;
$("#confirmBox").show();
}
// this is to close that DIV
$("#closeConfirmBox").click(function (e) {
$("#confirmBox").hide();
});
這是簡單的DIV以及關閉按鈕。
<div id="confirmBox">
<div id="confirmMsg" style="padding: 10px; font-size: 16px;">
this message gets replaced with whatever ajax call returned
</div>
<a href="#" id="closeConfirmBox" data-role="button">Close</a>
</div>
看來,在彈出的皮和我的DIV來了之後,老鼠不會顯示爲一個手指指針,直到我單擊頁面上出現一次。只有這樣我才能正確使用DIV上的關閉按鈕。同樣的情況發生在移動設備上,我必須在屏幕上某處顯示,然後才能再次點擊關閉。我能做些什麼呢?
只有「關閉」按鈕在第一次點擊時沒有工作,或確認框中的任何元素? – 2014-09-18 19:03:06
這是一個很好的問題。只有在第一次點擊之後,才能操作頁面上的其他元素。 – 2014-09-18 19:06:23
這意味着在其他人面前有一個透明元素,點擊時消失。如果你發現了什麼,你可以在你的ajax函數後通過Js刪除它。 – 2014-09-18 19:10:12