JQuery对话框关闭问题

JQuery对话框关闭问题,jquery,Jquery,我试图构建Jquery对话框,在屏幕上显示多个弹出窗口,但有时OK按钮不执行任何操作 function alert_popup_msg(_msg) { var id = "" + (new Date()).getTime(); var popDiv = "<div id='" + id + "' class=\"dialog-size def-popup\"><div class=\"popup-background\"><label class=\"

我试图构建Jquery对话框,在屏幕上显示多个弹出窗口,但有时OK按钮不执行任何操作

function alert_popup_msg(_msg)
{
   var id = "" + (new Date()).getTime();
   var popDiv = "<div id='" + id + "' class=\"dialog-size def-popup\"><div  class=\"popup-background\"><label class=\"color-white no-text-shadow center-align font-helv-16-bold std-padding-a\">Alert</label><label class=\"color-white no-text-shadow center-align font-helv-12-reg std-padding-a\">"+_msg+"</label><div class=\"center-align\"><a class=\"btn-simple-black-orange btn-text btn-login\" id=\"okButtonCallBack\">Ok</a></div></div></div> ";                                             
   $.mobile.activePage.append(popDiv).trigger("pagecreate");

   $( "#" + id ).dialog({
      modal: false,

    });
   $("#okButtonCallBack").click(function(event){
            $("#" + id).dialog("close");
            $("#" + id).remove();
   });

};
function alert\u popup\u msg(\u msg)
{
var id=“”+(新日期()).getTime();
var popDiv=“警报”+_msg+“正常”;
$.mobile.activePage.append(popDiv.trigger)(“pagecreate”);
$(“#”+id).对话框({
莫代尔:错,
});
$(“#确定按钮回调”)。单击(函数(事件){
$(“#”+id).对话框(“关闭”);
$(“#”+id).remove();
});
};
谁能帮我解决这个问题?它阻止用户执行任何操作。即使您导航回同一屏幕,除非刷新整个屏幕,否则弹出窗口仍会显示

谢谢,
Ramesh

您的“确定”按钮不应该有id,但应该通过CSS类指定,因为id在定义上是唯一的,并且您的代码当前在多个对话框imho中中断(因为
$(“#示例”)
将始终返回第一个结果)。

id=“OKButonCallback”
更改为
class=“OKButonCallback”
,因为ID必须是唯一的。然后编写处理程序:

$(document).on("click", ".okButtonCallBack", function() {
    var dialog = $(this).closest(".def-popup");
    dialog.dialog("close").remove();
}

此处理程序可以只指定一次,它不需要绑定在
警报弹出消息
函数中。

上使用
,而不是
单击
,我建议不要在IDs属性中使用IDs,此时不需要超过1个对话框

这将“侦听”与类
对话框ok按钮匹配的
正文中的节点更改,并在将回调插入DOM时将其绑定到
click
事件。因此,无需多次重新运行此代码

$('body').on('click', '.dialog-ok-button', function(event){
    $(".dialog").dialog("close");
    $(".dialog").remove();
});

您不能在所有对话框中使用相同的
id=“OKButonCallback”
,因为id必须是唯一的。您是否同时使用JQuery Mobile和JQuery UI?它们之间存在一些冲突,包括与对话框的冲突。您正在尝试使用JQuery UI对话框还是JQuery Mobile对话框?您对$.mobile的引用表示您正在使用jquery mobile,但对话框语法是针对jquery UI对话框的。如果您使用的是JQuery Mobile,建议使用JQuery Mobile弹出窗口小部件。文件: