代码之家  ›  专栏  ›  技术社区  ›  Kimtho6

jquery用户界面关闭对话框

  •  2
  • Kimtho6  · 技术社区  · 15 年前

    我在鼠标退出时关闭javascript/jquery中的对话框时遇到一个小问题。 这是剧本

    $().ready(function () {
        $(".popup").live("mouseover", function () {
    
            $(this).next().dialog();
        });
        $(".popup").live("mouseout", function () {
    
            $(this).next().close();
        });
    });
    
    1 回复  |  直到 14 年前
        1
  •  3
  •   Mark Schultheiss    15 年前

    类似这样的事情会奏效:

    $(function () {
      $(".popup").live("mouseover", function () {
        var dlg = $.data(this, 'dialog');
        if(dlg) dlg.dialog('open');
        else $.data(this, 'dialog', $(this).next().dialog());
      }).live("mouseout", function () {
        $.data(this, 'dialog').dialog('close');
      });
    });
    

    为什么这么复杂?好了 .dialog() 调用包装元素并将其移动到 <body> 元素,所以 .next() 再也找不到了。所以…我们需要存储对相关对话框的引用。

    另一种方法是,在创建对话框时,以相对的方式定位对话框并将其粘贴回DOM中,这两种方法都有效。