jQuery对话框赢得';t关闭(使用.load数据)
在我的页面上(我们称之为A页面),我有一个jQuery对话框,id为jQuery对话框赢得';t关闭(使用.load数据),jquery,dialog,jquery-dialog,Jquery,Dialog,Jquery Dialog,在我的页面上(我们称之为A页面),我有一个jQuery对话框,id为customOrderEdit。在对话框中,我使用$(“#customOrderEdit”).load(“/url/to/page.php”)加载另一个页面(我们称之为第B页) 现在我想使用自定义按钮关闭对话框,但它不会关闭。我尝试过很多东西(在谷歌、stackoverflow等网站上找到),但似乎都不管用。不管关闭对话框的代码是在A页还是B页上,只要它关闭,我就很高兴 我在A页上尝试的代码: $("body").on('cli
customOrderEdit
。在对话框中,我使用$(“#customOrderEdit”).load(“/url/to/page.php”)加载另一个页面(我们称之为第B页)
现在我想使用自定义按钮关闭对话框,但它不会关闭。我尝试过很多东西(在谷歌、stackoverflow等网站上找到),但似乎都不管用。不管关闭对话框的代码是在A页还是B页上,只要它关闭,我就很高兴
我在A页上尝试的代码:
$("body").on('click', '.cancelUpdateOrder', function(){
console.log("Test"); //it displays the test console log, but it doesn't close
$("#customOrderEdit).dialog( "close" );
return false;
});
我在B页尝试的代码:
$(".cancelUpdateOrder").on('click', function(){
$('#customOrderEdit').dialog('close');
return false;
});
我还尝试以不同的方式调用click函数:
$(.cancelUpdateOrder”)。单击(函数(){})代码>
$(.cancelUpdateOrder”).live('click',function(){})代码>
$(.cancelUpdateOrder”).on('click',function(){})代码>
$(.ui对话框”).dialog(“关闭”)代码>
window.parent.$('#customOrderEdit')。对话框('close')代码>
$('#customOrderEdit',window.parent)。对话框(“关闭”)代码>
是否有人知道我做错了什么,并能为我提供正确的代码?类选择器可以返回对象列表,然后您可以尝试使用每个对象进行迭代:
$('.cancelUpdateOrder').each( function () {
$(this).on('click', function () {
$('#customOrderEdit').dialog('close');
return false;
})
});
如果不起作用,您可以尝试放置一个console.log来跟踪是否到达了正确的元素
希望有帮助我遇到了这个问题,并注释掉了加载文件(文件B)中包含的jquery.js,尽管它与调用文件(文件A)中包含的jquery.js完全相同。除非您注释掉加载到对话框中的test.php文件中的
标记,否则以下示例将不起作用
html(我正在使用jquery-3.2.1和jquery ui 1.12.1)
添加
test.js
$( document ).ready(function() {
$("#contentsContainer").on('click', '#btnAddClient', function () {
var dlg = $("<div id=\"btnAddClientDlg\"/>").dialog({
title: 'Add New Client',
modal: true,
autoOpen: false,
width: 720,
height: 420,
buttons: {
Save: function () {
$.post("../php/test.php");
$('#btnAddClientDlg').dialog('destroy').remove();
},
Close: function () {
$('#btnAddClientDlg').dialog('close');
}
}
});
dlg.load("../php/test.php");
dlg.dialog('open');
});
});
$(文档).ready(函数(){
$(“#contentsContainer”)。在('click','btnAddClient',函数(){
变量dlg=$(“”)。对话框({
标题:“添加新客户端”,
莫代尔:是的,
自动打开:错误,
宽度:720,
身高:420,
按钮:{
保存:函数(){
$.post(“../php/test.php”);
$('btnAddClientDlg')。对话框('destroy')。删除();
},
关闭:函数(){
$('btnAddClientDlg')。对话框('close');
}
}
});
load(“../php/test.php”);
dlg.dialog(“打开”);
});
});
test.php
<!DOCTYPE html>
<header>
<script src="../js/jquery-3.2.1.js" type="text/javascript"></script>
</header>
<?php
echo "hello";
?>
在引用
对话框时,您可能在a页中缺少双引号,即“
”
->$(“#customOrderEdit”)。对话框(
应该是$(#customOrderEdit”)。对话框(
这对我@Ricardo不起作用。在我的案例中,该元素在按钮单击事件中到达,我得到一个控制台.log
输出,但对$('#myDialogName')。dialog('close');
的引用对对话框没有任何影响:(.与Femke类似,我尝试了几种方法,在初始化对话框后获得了对对话框的对象引用,然后将单击事件绑定到按钮,在这种情况下,它工作正常,但只有在我第一次打开对话框时,下一次启动对话框时,“关闭”按钮没有响应,它甚至没有到达事件处理程序。请救命啊!
<!DOCTYPE html>
<header>
<script src="../js/jquery-3.2.1.js" type="text/javascript"></script>
</header>
<?php
echo "hello";
?>