Javascript 页面中所有超链接单击的Jquery模式对话框

Javascript 页面中所有超链接单击的Jquery模式对话框,javascript,jquery,Javascript,Jquery,在我的项目中,我有一个页面,我需要在点击所有超链接时显示一个模式对话框 弹出窗口有两个按钮,分别为“继续”和“返回”。我写了一些我在Stackoverflow网站上找到的jquery。但是代码有一个问题 假设我在这个页面中有5个超链接。当我单击第一个链接时,它将打开对话框;当我单击“继续”时,它将正确打开链接 但是当我点击第二个链接时,它会再次打开第一个链接和第二个链接 两个单独的窗口,这是错误的,它应该只打开第二个链接 当我再次点击第三个链接时,它会在3个窗口中打开第一、第二和第三个链接 我想

在我的项目中,我有一个页面,我需要在点击所有超链接时显示一个模式对话框

弹出窗口有两个按钮,分别为“继续”和“返回”。我写了一些我在Stackoverflow网站上找到的jquery。但是代码有一个问题

假设我在这个页面中有5个超链接。当我单击第一个链接时,它将打开对话框;当我单击“继续”时,它将正确打开链接

但是当我点击第二个链接时,它会再次打开第一个链接和第二个链接 两个单独的窗口,这是错误的,它应该只打开第二个链接

当我再次点击第三个链接时,它会在3个窗口中打开第一、第二和第三个链接

我想我在代码中犯了一个小错误。如果有人帮我解决这个问题,我真的很感激

提前谢谢你的帮助。以下是我的jquery代码:

<script type="text/javascript">
<!-- Loading Modal Dialog Popup-->
$(document).ready(function() {
    //  $(".leaving-the-site-container").hide(); 
    $(".linkdialog").click(function(e){
        e.preventDefault();                            
        var targetUrl = $(this).attr("href");                     
        alert(targetUrl);

        $(".leaving-the-site-container").dialog({        
            width:452,
            // autoOpen:false,
            // height:225,
            modal:true,
            closeOnEscape:false,
            draggable:false,
            scrollbars:false,
            position: ["center", 240]
        });                                                      

        $("#btnContinue").click(function(){                            
            window.open(targetUrl);
            $(".leaving-the-site-container").dialog("close");                                                                         
        }); 
        $("#btnTakeMeBack").click(function(){
            $(".leaving-the-site-container").dialog("close");
        });
    });
});
</script>

$(文档).ready(函数(){
//$(“.leving the site container”).hide();
$(“.linkdialog”)。单击(函数(e){
e、 预防默认值();
var targetUrl=$(this.attr(“href”);
警报(targetUrl);
$(“.离开站点容器”)。对话框({
宽度:452,
//自动打开:错误,
//身高:225,
莫代尔:是的,
closeOnEscape:错误,
可拖动:错误,
滚动条:false,
位置:[“中间”,240]
});                                                      
$(“#btn继续”)。单击(函数(){
打开(targetUrl);
$(“.leaving the site container”)。对话框(“close”);
}); 
$(“#btntakeback”)。单击(函数(){
$(“.leaving the site container”)。对话框(“close”);
});
});
});

您的密码不正确。这将起作用:

$(document).ready(function() {

$(".linkdialog").click(function(e){
    e.preventDefault();
    $('.linkdialog').removeClass('selected');
    $(this).addClass('selected');                            
    $('.leaving-the-site-container').dialog('open');
});

$(".leaving-the-site-container").dialog({        
    width:452,
    modal:true,
    closeOnEscape:false,
    draggable:false,
    scrollbars:false,
    position: ["center", 240],
        open: function() {
    $("#btnContinue").click(function(){                            
        window.open($('.selected').attr('href'));                                     
        $(".leaving-the-site-container").dialog("close");                                                                         
        }); 
            $("#btnTakeMeBack").click(function(){
        $(".leaving-the-site-container").dialog("close");
    });
    }
});
});

您应该格式化jquery代码,使其可读,并发布html+css,以便我们知道发生了什么。你可以使用它。它的格式化代码只。我不明白为什么会这样。我有什么办法可以把电话接上吗file@Henry-我修好了。编辑对话框上的{}按钮允许您格式化代码块,以便更容易阅读。简单地选择代码文本并单击{}按钮。@Henry-没问题。在格式化代码时(一般来说,不只是这里),考虑使用的间距/缩进。我喜欢在每个缩进之前有四个连续的空格。有些人更喜欢标签(我讨厌它们)。但是,在重新格式化代码本身的缩进之后,考虑代码读取的难度。这有助于调试。您好,您的解决方案不起作用。以不同的方式解决同样的问题。现在,首先单击给定空错误。第二个链接单击在两个窗口中打开相同的链接。第三,在3个窗口中单击打开同一链接,依此类推。谢谢你抽出时间。任何人都可以帮我解决这个问题。这对我来说很紧急。