从内部关闭Jquery UI对话框
我有两个页面,比如page1.html和page2.html page1.html包含以下代码:从内部关闭Jquery UI对话框,jquery,jquery-ui,Jquery,Jquery Ui,我有两个页面,比如page1.html和page2.html page1.html包含以下代码: $(document).ready(function() { $('#mydialog').dialog({autoOpen : false, modal : true}); $('#myopenlink').click(function() {
$(document).ready(function() {
$('#mydialog').dialog({autoOpen : false, modal : true});
$('#myopenlink').click(function() {
$('#mydialog').load('page2.html');
$('#mydialog').dialog('open');
return false;
});
});
page1.HTML中的相关HTML元素:
当然,page1.html也有以下功能:
<div id="mydiv"> </div>
当我单击从page2加载到mydiv的链接时,什么也没有发生(我希望警报会显示)
我做错了什么
谢谢
感谢诸位喜欢这个演示或更新的答案 动态追加演示: 因此,要关闭对话框,只需调用
.dialog('close')
rest,演示将为您提供一个很好的环境
API驻留在这里:
好书:
希望这有帮助
代码
buttons: {
'Submit': function() {
$Dialog_div.dialog('close');
}
示例代码的其余部分
buttons: {
'Submit': function() {
$Dialog_div.dialog('close');
}
var$Dialog\u div
function fnOpenDialog() {
$Dialog_div = $('<div id=\'ThisDialog\'>Hello Page 2</div>').prependTo('body');
$Dialog_div = $('#ThisDialog').dialog({
autoOpen: true,
draggable: true,
resizable: true,
title: 'Dialog stack overflow HULK',
modal: true,
stack: true,
height: ($(window).height() * 0.95),
width: ($(window).width() * 0.9),
buttons: {
'Submit': function() {
$Dialog_div.dialog('close');
}
}
});
}
$('#ClickMe').click(fnOpenDialog);
函数fnOpenDialog(){
$Dialog_div=$('Hello Page 2')。prependTo('body');
$Dialog_div=$(“#ThisDialog”).Dialog({
自动打开:对,
真的,
可调整大小:正确,
标题:“对话框堆栈溢出绿巨人”,
莫代尔:是的,
斯塔克:没错,
高度:($(窗口).height()*0.95),
宽度:($(窗口).width()*0.9),
按钮:{
“提交”:函数(){
$Dialog_div.Dialog('close');
}
}
});
}
$('#ClickMe')。单击(fOpenDialog);
你好,像这样的演示或更新的答案=>这个或 动态追加演示: 因此,要关闭对话框,只需调用
.dialog('close')
rest,演示将为您提供一个很好的环境
API驻留在这里:
好书:
希望这有帮助
代码
buttons: {
'Submit': function() {
$Dialog_div.dialog('close');
}
示例代码的其余部分
buttons: {
'Submit': function() {
$Dialog_div.dialog('close');
}
var$Dialog\u div
function fnOpenDialog() {
$Dialog_div = $('<div id=\'ThisDialog\'>Hello Page 2</div>').prependTo('body');
$Dialog_div = $('#ThisDialog').dialog({
autoOpen: true,
draggable: true,
resizable: true,
title: 'Dialog stack overflow HULK',
modal: true,
stack: true,
height: ($(window).height() * 0.95),
width: ($(window).width() * 0.9),
buttons: {
'Submit': function() {
$Dialog_div.dialog('close');
}
}
});
}
$('#ClickMe').click(fnOpenDialog);
函数fnOpenDialog(){
$Dialog_div=$('Hello Page 2')。prependTo('body');
$Dialog_div=$(“#ThisDialog”).Dialog({
自动打开:对,
真的,
可调整大小:正确,
标题:“对话框堆栈溢出绿巨人”,
莫代尔:是的,
斯塔克:没错,
高度:($(窗口).height()*0.95),
宽度:($(窗口).width()*0.9),
按钮:{
“提交”:函数(){
$Dialog_div.Dialog('close');
}
}
});
}
$('#ClickMe')。单击(fOpenDialog);
要实际关闭事件处理程序中的对话框,请使用以下命令:
$(this).closest('.ui-dialog-content').dialog('close');
它将把DOM从新加载的内容返回到原来的div中,现在有一个对话框将其包装起来
我看不出您发布的用于实际注册事件的代码有任何明显的错误,但据我所知,这里根本不需要使用事件委派
由于只有在
.load
完成后才执行注册,因此可以直接在#mycloselink
上注册事件处理程序,以实际关闭事件处理程序中的对话框。请使用以下方法:
$(this).closest('.ui-dialog-content').dialog('close');
它将把DOM从新加载的内容返回到原来的div中,现在有一个对话框将其包装起来
我看不出您发布的用于实际注册事件的代码有任何明显的错误,但据我所知,这里根本不需要使用事件委派
由于直到
.load
完成后才执行注册,因此可以直接在#mycloselink
上注册事件处理程序。是否尝试了$('#myopenlink')。单击(函数(evt){evt.preventDefault();$(this).dialog('close');})代码>?这是一样的吗?我不知道是不是同一个问题。我尝试了建议的解决方案,但没有效果。不确定该问题是指在框内加载.html页面还是仅仅向其注入html。您是否尝试过$('#myopenlink')。单击(函数(evt){evt.preventDefault();$(this.dialog('close');))代码>?这是一样的吗?我不知道是不是同一个问题。我尝试了建议的解决方案,但没有效果。不确定该问题是指在框中加载.html页面还是仅向其中注入html。我想从加载页面中的html元素关闭对话框,而不是使用对话框按钮。@AmirW-hmmm您的意思是;是否从父窗口元素关闭对话框?对不起,如果我的声音很粗-我只是想确保这次我得到了,干杯@AmirW确定不是从对话框按钮而是子元素?赞成?i、 e.对话框中的元素?是的。我编辑了这个问题,也许现在它更清楚了(也更关注这个问题)。@AmirW你看,伙计:现在我在飞行中添加了按钮。希望此帮助我希望从加载页面内的HTML元素关闭对话框,而不是使用对话框按钮。@AmirW-hmmm您的意思是;是否从父窗口元素关闭对话框?对不起,如果我的声音很粗-我只是想确保这次我得到了,干杯@AmirW确定不是从对话框按钮而是子元素?赞成?i、 e.对话框中的元素?是的。我编辑了这个问题,也许现在它更清楚了(也更关注这个问题)。@AmirW你看,伙计:现在我在飞行中添加了按钮。希望这有助于您查看已编辑的问题。我从问题中删除了对话。看起来我的问题是动态生成HTML的事件处理程序中的一些基本问题。Yep@AmirW这是对的:))我想,如果你使用firebug,你可以检查元素,你可以看到这一点,我想你可以使用下面的演示,如果你想我可以删除我的帖子,干杯+1@AmirW是的,我在第一次阅读时就忽略了这一点-所以你真正的问题是关于活动授权,而不是对话框?@AmirW我想:你想看我下面的帖子吗?是的?请看编辑后的问题。我从问题中删除了对话。看起来我的问题是动态生成HTML的事件处理程序中的一些基本问题