我有两个弹出对话框。我有javascript。当前只有一个弹出窗口在单击两个链接时打开

时间:2011-10-21 08:21:46

标签: javascript jquery html

我有两个弹出对话框,用于页脚返回政策和隐私政策中的链接。我有javascript和所有文件。

当点击两个链接时,当前只有一个弹出窗口打开。我希望每个链接都打开它自己的弹出对话框。

此网址位于http://www.sarahjanetrading.com/js/j/index.html

javascript文件位于http://www.sarahjanetrading.com/js/j/js/popups.js

由于

2 个答案:

答案 0 :(得分:1)

周围的跨度#dialog上有点击代码。所以基本上无论你在哪个区域按下相同的弹出窗口都会打开。

然后你会在对方上面显示两个对话框,返回策略是最后一个对话框,它覆盖另一个对话框。

您需要做的是将其绑定到链接

$("#dialog a").click(function(){
    //centering with css
    centerPopup();
    //get id of the clicked
    var clickedLink = $(this).attr('id');
    //load popup
    loadPopup(clickedLink);
});

然后只显示点击对话框:

function loadPopup(clickedLink){
    //loads popup only if it is disabled
    if(popupStatus==0){
        $("#backgroundPopup").css({
            "opacity": "0.7"
        });
        $("#backgroundPopup").fadeIn("slow");
        $("#"+clickedLink).fadeIn("slow");
        popupStatus = 1;
    }
}

更新版本

您可以使用href获取对话框ID,然后执行以下操作:

<a href="#privacyPolicy-popup" id="returnPolicy">Return Policy</a>

$("#dialog a").click(function(){
    //centering with css
    centerPopup();
    //get id of the clicked
    var clickedLink = $(this).attr('href');
    //load popup
    loadPopup(clickedLink);
});

function loadPopup(clickedLink){
    //loads popup only if it is disabled
    if(popupStatus==0){
        $("#backgroundPopup").css({
            "opacity": "0.7"
        });
        $("#backgroundPopup").fadeIn("slow");
        $(clickedLink).fadeIn("slow");
        popupStatus = 1;
    }
}

答案 1 :(得分:0)

看看你如何约束事件:

//LOADING POPUP
//Click the button event!
$("#dialog").click(function(){
    //centering with css
    centerPopup();
    //load popup
    loadPopup();
});

您已将此点击事件分配给整个dialog范围,因此只要他们点击其中的任何位置(即使在链接之间的空格中),也会执行此操作。它没有区分链接。

此外,在loadPopup()中,您有:

$("#privacyPolicy-popup").fadeIn("slow");
$("#returnPolicy-popup").fadeIn("slow");

所以正在发生的是,只要点击dialog范围内的任何地方,都会显示两个弹出窗口。

作为一个提示,你想要在这里做什么在某种程度上辨别哪些链接被点击(比如说,将点击绑定到每个链接而不是对话框),然后只显示其中一个弹出窗口一段时间,取决于点击的链接。