jquery - 如何使 jQuery 对话框使用超链接文本而不是按钮?

标签 jquery hyperlink dialog popup jquery-ui-dialog

我让它工作了,但问题是它只能工作一次。一旦出现弹出窗口,链接就不起作用,并且弹出窗口不会再次显示。我必须刷新才能看到正在发生的事情。我得到了这个http://jsfiddle.net/pjVcR/2/它在 jsfiddle 内部工作,但在我的网站上不起作用。我的网站链接在这里:MY SITE

这是代码:

  <div class="content">
  <h4><a href="#" >AAAA</a></h4><img src="AAAA.jpg" />
    <div class="dialog" title="AAAA" >text AAAA
    </div>
  </div>

  <div class="content">
  <h4><a href="#" >BBBB</a><br></h4><br><img src="BBBB.jpg" />
    <div class="dialog" title="BBBB" >text
    </div>
  </div>

以及 html 中给出的脚本:

<script>
$("a").click(function(event) {
  $(this).parent().parent().children(".dialog").dialog({
    close: function( event, ui ) {
      $('.dialog').dialog('destroy');
    }
  });
});
</script>

最佳答案

您有许多带有 dialog 类的元素,因此当您调用时

$('.dialog').dialog('destroy');

您正在销毁尚不存在的对话框,因此出现异常:

cannot call methods on dialog prior to initialization; attempted to call method 'destroy'

close 处理程序(即特定的 .dialog 元素)内使用 $(this) 的本地实例,以便 jQuery 知道要销毁哪一个。

$("a").click(function(event) {
  $(this).parent().parent().children(".dialog").dialog({
    close: function( event, ui ) {
      $(this).dialog('destroy');
    }
  });
});

http://jsfiddle.net/pjVcR/3/

请注意,如果您将代码更改为使用 .dialog 而不是 $(this),您仍然会在页面中遇到相同的错误,这就是为什么您不会在 jsFiddle 中收到错误,因为您只有一个带有 .dialog 类的 div。

关于jquery - 如何使 jQuery 对话框使用超链接文本而不是按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19367424/

相关文章:

javascript - Express JS 从 AJAX 请求中获取 URL

javascript - JQuery 淡入淡出悬停效果 - 帮助?

Javascript 检测当前页面并更改超链接颜色

css - CKEditor 对话框中的自定义样式

包含对象逻辑的 Javascript 数组失败。出了什么问题?

css - 使用 CSS 更改悬停时的链接不透明度

boost - 您如何仅静态链接 Boost 库?

Java Swing 对话框按钮和图标

java - 为什么我的 RadioGroup 返回 'false'

javascript - Twitter 未捕获类型错误 : undefined is not a function