【问题标题】:Multiple level of jQuery Dialog多级 jQuery Dialog
【发布时间】:2026-01-03 05:30:01
【问题描述】:

我正在尝试使用模态行为实现多级jQuery Dialog。我有打开第一个对话框的主页,从那里可以打开第二个对话框,所有这些都应该是模态框。

第一个问题是单击主页链接时我在小提琴上遇到错误,第二个问题是它没有按要求创建对话框。

Fiddle

【问题讨论】:

    标签: javascript jquery html css jquery-dialog


    【解决方案1】:

    发生了一堆事情:

    1. 在jsFiddle中,需要添加jQuery UI和一个主题作为外部资源。仅选择 jQuery 库是不够的。 jQuery UI Dialog 是 jQuery UI 库的一部分,而不是 jQuery 核心库的一部分。

    2. 由于您的点击事件在<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
      });
      
    3. 在页面加载时设置对话框,然后在需要时打开它们。使用autoOpen:false 参数防止它们在页面加载时打开。如下打开它们:

      $("dialog-id").dialog("open");
      
    4. 不要在模态框上打开模态框。它的可用性极差。在打开第二个之前关闭第一个:

      function clickForSecond() {
        $("dialog-id-first").dialog("close");
        $("dialog-id-second").dialog("open");
      }
      

    一个工作示例: https://jsfiddle.net/5ucat3f7/1/

    【讨论】: