【发布时间】:2026-01-03 05:30:01
【问题描述】:
我正在尝试使用模态行为实现多级jQuery Dialog。我有打开第一个对话框的主页,从那里可以打开第二个对话框,所有这些都应该是模态框。
第一个问题是单击主页链接时我在小提琴上遇到错误,第二个问题是它没有按要求创建对话框。
【问题讨论】:
标签: javascript jquery html css jquery-dialog
我正在尝试使用模态行为实现多级jQuery Dialog。我有打开第一个对话框的主页,从那里可以打开第二个对话框,所有这些都应该是模态框。
第一个问题是单击主页链接时我在小提琴上遇到错误,第二个问题是它没有按要求创建对话框。
【问题讨论】:
标签: javascript jquery html css jquery-dialog
发生了一堆事情:
在jsFiddle中,需要添加jQuery UI和一个主题作为外部资源。仅选择 jQuery 库是不够的。 jQuery UI Dialog 是 jQuery UI 库的一部分,而不是 jQuery 核心库的一部分。
由于您的点击事件在<a> 标签上,您需要取消它们的默认行为。为您的<a> 标签创建一个点击处理程序,并在执行任何其他操作之前先取消默认行为:
<a href="#" id="clickForGold">Gold</a>
$("#clickForGold").on("click", function(e) {
e.preventDefault(); <--- this stops the link from navigating
//now do other stuff
});
在页面加载时设置对话框,然后在需要时打开它们。使用autoOpen:false 参数防止它们在页面加载时打开。如下打开它们:
$("dialog-id").dialog("open");
不要在模态框上打开模态框。它的可用性极差。在打开第二个之前关闭第一个:
function clickForSecond() {
$("dialog-id-first").dialog("close");
$("dialog-id-second").dialog("open");
}
一个工作示例: https://jsfiddle.net/5ucat3f7/1/
【讨论】: