Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.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 jQueryUI对话框-在已打开的jQueryUI对话框中保留单击的链接 $(文档).ready(函数(){ $('#mardicion')。每个(函数(){ var$link=$(此); $link.click(函数(){ 变量$dialog=$('') .load($link.attr('href')+'#content')) .对话({ 自动打开:错误, 标题:$link.attr('title'), 宽度:(pageWidth()*0.9), 高度:(页面高度()*0.9) }); $dialog.dialog('open'); 返回false; }); }); });_Javascript_Jquery_Jquery Ui_Jquery Ui Dialog - Fatal编程技术网

Javascript jQueryUI对话框-在已打开的jQueryUI对话框中保留单击的链接 $(文档).ready(函数(){ $('#mardicion')。每个(函数(){ var$link=$(此); $link.click(函数(){ 变量$dialog=$('') .load($link.attr('href')+'#content')) .对话({ 自动打开:错误, 标题:$link.attr('title'), 宽度:(pageWidth()*0.9), 高度:(页面高度()*0.9) }); $dialog.dialog('open'); 返回false; }); }); });

Javascript jQueryUI对话框-在已打开的jQueryUI对话框中保留单击的链接 $(文档).ready(函数(){ $('#mardicion')。每个(函数(){ var$link=$(此); $link.click(函数(){ 变量$dialog=$('') .load($link.attr('href')+'#content')) .对话({ 自动打开:错误, 标题:$link.attr('title'), 宽度:(pageWidth()*0.9), 高度:(页面高度()*0.9) }); $dialog.dialog('open'); 返回false; }); }); });,javascript,jquery,jquery-ui,jquery-ui-dialog,Javascript,Jquery,Jquery Ui,Jquery Ui Dialog,我使用上面的javascript在单击链接时加载页面,页面加载正确,但当我在对话框中单击另一个链接时,单击的链接将在浏览器窗口中打开,而不是在对话框中打开。我听说使用click处理程序是实现这一点的正确方法(即在对话框中打开链接),但我不确定如何使用click处理程序实现它 谢谢 您必须使用live()函数。在特定时间(我猜是在页面加载时),您会将一个click事件处理程序附加到ID为mardicion的特定数量的项目上。当页面加载到对话框中时,该页面内的链接,即使它们可能具有madicionI

我使用上面的javascript在单击链接时加载页面,页面加载正确,但当我在对话框中单击另一个链接时,单击的链接将在浏览器窗口中打开,而不是在对话框中打开。我听说使用click处理程序是实现这一点的正确方法(即在对话框中打开链接),但我不确定如何使用click处理程序实现它


谢谢

您必须使用
live()
函数。在特定时间(我猜是在页面加载时),您会将一个click事件处理程序附加到ID为
mardicion
的特定数量的项目上。当页面加载到对话框中时,该页面内的链接,即使它们可能具有
madicion
ID,它们的单击事件也不会连接起来

使用
$('#madicion').live('click',function(e){})
捕获所有项目的单击事件,即使它们在稍后阶段添加到页面中

作为旁注:

  • 似乎您误用了ID属性。每个ID只能有一个元素。查看
    $('#XXX')。每个()
    显示您有多个项。处理这些事情的正确方法是给这些元素一个CSS类,并使用
    $('.XXX')。each()
  • 不需要使用每个
    $('#XXX')。单击(function(){})
    将所述函数应用于每个元素

  • 可以添加一些html代码吗?当然可以:我不应该在正在加载的页面中处理或使用live()函数吗?在这种情况下(参见我在问题“page3.html”中的评论)?谢谢否,因为您将页面作为现有页面的一部分加载。因此,它被添加到现有页面的DOM中。
    <script type="text/javascript"> 
    $(document).ready(function() {
        $('#mardicion').each(function() {
            var $link = $(this);
    
    
            $link.click(function() {
                var $dialog = $('<div></div>')
                    .load($link.attr('href') + ' #content')
                    .dialog({
                        autoOpen: false,
                        title: $link.attr('title'),
                        width: (pageWidth()*0.9),
                        height: (pageHeight()*0.9)
                    });
                    $dialog.dialog('open');
    
                    return false;
            });
        });
    });
    </script>