我有两个弹出对话框,用于页脚返回政策和隐私政策中的链接。我有javascript和所有文件。
当点击两个链接时,当前只有一个弹出窗口打开。我希望每个链接都打开它自己的弹出对话框。
此网址位于http://www.sarahjanetrading.com/js/j/index.html
javascript文件位于http://www.sarahjanetrading.com/js/j/js/popups.js。
由于
答案 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
范围内的任何地方,都会显示两个弹出窗口。
作为一个提示,你想要在这里做什么在某种程度上辨别哪些链接被点击(比如说,将点击绑定到每个链接而不是对话框),然后只显示其中一个弹出窗口一段时间,取决于点击的链接。