Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Ajax生成的链接启动JQuery对话框_Javascript_Jquery_Ajax_Dialog_Hyperlink - Fatal编程技术网

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

Javascript 使用Ajax生成的链接启动JQuery对话框,javascript,jquery,ajax,dialog,hyperlink,Javascript,Jquery,Ajax,Dialog,Hyperlink,我有一个没有内容的div。内容通过jquery load()动态加载到div中。此内容包含链接。我正在使用jquery将所有链接加载到函数中以启动对话框,但它不起作用,因为链接没有显示在源代码中。有解决办法吗 <pre> <script type="text/javascript"> $(document).ready(function() { var $loading = $('<img src="loadi

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

$(文档).ready(函数(){
变量$loading=$('');
$('#maindiva')。每个(函数(){
变量$dialog=$('')
.append($loading.clone());
var$link=$(this).one('click',function(){
$dialog
.load($link.attr('href')+'#content'))
.对话({
标题:$link.attr('title'),
宽度:500,
身高:300
});
$link.click(函数(){
$dialog.dialog('open');
返回false;
});
返回false;
});
});
});

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

在jQuery1.7中(我认为)
.live
现在是
.on
了,所以要注意这一点

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

您可能还希望在单击链接时删除该链接的默认行为


我仔细查看,发现delegate()。它的工作绝对完美。出于个人原因,我也会尝试一下你的剧本。如果你喜欢,别忘了接受答案或投票:)
$("a").live("click", function(){
  //code here
});