【问题标题】:How to close jquery-ui dialog on click outside?如何在外部单击时关闭 jquery-ui 对话框?
【发布时间】:2012-11-11 05:14:35
【问题描述】:

我正在使用 jquery-ui 对话框(非模态对话框)。如果用户在对话框外单击,我想关闭对话框。出于这个原因,我使用了Jquery Outside Events Plugin。我还创建了一个小提琴:

http://jsbin.com/apezok/3/edit

在这个小提琴中,我创建了一个按钮,我们可以通过它打开一个对话框。我绑定clickoutsideevent 也与对话框。现在我的问题是当我单击按钮打开对话框时,单击外部事件执行并关闭对话框。如何在打开对话框时停止此事件执行?

【问题讨论】:

    标签: javascript jquery jquery-ui


    【解决方案1】:

    单击按钮元素首先会触发该元素的单击事件,然后单击事件会向上传播到 DOM 中的更高级别。 event.stopPropagation() 阻止事件传播到更高级别:

    $("#opendialog").click(function(event){
      event.stopPropagation();
      $(".dialog").dialog("open");
    });
    

    如果用户在对话框已经打开时单击打开按钮怎么办?这是否仍应算作在对话框外单击并关闭它?如果这是所需的行为,则以下工作:

    $("#opendialog").click(function(event){
      if (!$(".dialog").dialog("isOpen")) {
        event.stopPropagation();
        $(".dialog").dialog("open");
      }
    });
    

    【讨论】:

      猜你喜欢
      • 2012-01-08
      • 1970-01-01
      • 2011-02-03
      • 1970-01-01
      • 2016-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多