【问题标题】:Launch JQuery Dialog with Ajax generated link使用 Ajax 生成的链接启动 JQuery 对话框
【发布时间】:2011-12-09 03:18:34
【问题描述】:

我有一个没有内容的 div。内容通过 jquery load() 动态加载到 div 中。此内容包含链接。我正在使用 jquery 将所有链接加载到函数中来启动对话框,但它不起作用,因为链接没有显示在源代码中。有什么解决方法吗?

<pre>
        <script type="text/javascript">
        $(document).ready(function() {
            var $loading = $('<img src="loading.gif" alt="loading" class="loading">');

        $('#maindiv a').each(function() {
            var $dialog = $('<div></div>')
                .append($loading.clone());
            var $link = $(this).one('click', function() {
                $dialog
                    .load($link.attr('href') + ' #content')
                    .dialog({
                        title: $link.attr('title'),
                        width: 500,
                        height: 300
                    });

                $link.click(function() {
                    $dialog.dialog('open');

                    return false;
                });

                return false;
            });
        });
    });
    </script>
</pre>

【问题讨论】:

    标签: javascript jquery ajax dialog hyperlink


    【解决方案1】:

    您需要使用.live 关键字,以便将事件附加到生成的html。

    在 jquery 1.7 中(我认为).live 现在是 .on,所以要小心那个。

    $(".Link").live("click", function(){
      //code here
    });
    

    $("a").live("click", function(){
      //code here
    });
    

    您可能还想删除单击链接时的默认行为。

    http://api.jquery.com/event.preventDefault/

    【讨论】:

    • 我查看了一下,发现了delegate()。它绝对完美无瑕。我也会试试你的脚本以获取个人知识。
    • 如果你喜欢,别忘了接受答案或点赞:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-07
    相关资源
    最近更新 更多