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

Launch JQuery Dialog with Ajax generated link

本文关键字:启动 JQuery 对话框 链接 Ajax      更新时间:2023-09-26

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

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