使用Ajax生成的链接启动JQuery Dialog

时间:2011-12-09 03:18:34

标签: javascript jquery ajax dialog hyperlink

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

1 个答案:

答案 0 :(得分:0)

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