使用 Ajax 生成的链接启动 JQuery 对话框

发布于 2024-12-20 19:58:17 字数 1038 浏览 0 评论 0原文

我有一个没有内容的 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>

I have a div which has no content. the content is dynamically loaded into the div, through jquery load(). This content contains links. I'm using the jquery load all links into functions to launch a dialog, but its not working because the links don't show in the source. Any workaround to this?

<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>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

七秒鱼° 2024-12-27 19:58:17

您需要使用 .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/

You need to use the .live keyword so that you can attach events to generated html.

in jquery 1.7 (i think) .live is now .on so watch out for that one.

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

or

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

You might also want to remove the default behavior of the link when you click on it.

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文