我在实现多个弹出窗口时遇到问题。我从网上获取这个脚本,当我申请一个弹出窗口时它是正确的,但如果我复制了这个,那就没有了。您可以在Dendrosite中看到它。在左边缘菜单(Sinopsi / Fitxa / Autors)中,我在一个(Sinopsi)中正确实现,但现在我可以实现其他(Fitxa / Autors)
HTML:
<li class="sinopsi"><a id="go"><span></span></a></li>
<div id="popupContact">
<a id="popupContactClose"></a>
<h1></h1>
<h3>
<br/><br/>
</h3>
</div>
<div id="backgroundPopup"></div>
使用Javascript:
var popupStatus = 0; //loading popup with jQuery magic! function loadPopup(){ //loads popup only if it is disabled if(popupStatus==0){ $("#backgroundPopup").css({ "opacity": "0.7" }); $("#backgroundPopup").fadeIn("fast"); $("#popupContact").fadeIn("fast"); popupStatus = 1; } } //disabling popup with jQuery magic! function disablePopup(){ //disables popup only if it is enabled if(popupStatus==1){ $("#backgroundPopup").fadeOut("fast"); $("#popupContact").fadeOut("fast"); popupStatus = 0; } } //CONTROLLING EVENTS IN jQuery $(document).ready(function(){ //LOADING POPUP //Click the button event! $("#go").click(function(){ //centering with css //load popup loadPopup(); }); //CLOSING POPUP //Click the x event! $("#popupContactClose").click(function(){ disablePopup(); }); //Click out event! $("#backgroundPopup").click(function(){ disablePopup(); }); //Press Escape event! $(document).keypress(function(e){ if(e.keyCode==27 && popupStatus==1){ disablePopup(); } }); });
和CSS:
#backgroundPopup{ display:none; position:fixed; _position:absolute; /* hack for internet explorer 6*/ height:100%; width:100%; top:0; left:0; z-index:1; } #popupContact{ margin-top: -104px; margin-left:102px; display:none; position:fixed; _position:absolute; /* hack for internet explorer 6*/ height:288px; width:600px; z-index:9; padding:12px; background-color: #333; filter: alpha(opacity=20); opacity: .5 } #popupContact h1{ font-family:Arial, Helvetica, sans-serif; font-size:20px; color:#FFF; text-shadow: 0px 1px 1px #000; padding-bottom:10px; margin-bottom:30px; border-bottom-width: 1px; border-bottom-style: solid; } #popupContact h3{ font-family: Arial, Helvetica, sans-serif; font-size: 12px; color: #FFF; text-align: justify; } #popupContactClose{ font-size:18px; line-height:14px; right:6px; top:4px; position:absolute; color: #ffeb70; font-weight:700; display:block; cursor: pointer; font-family: Arial, Helvetica, sans-serif; }
谢谢!
答案 0 :(得分:1)
它不起作用的原因是,对于每个#go #go1 #go2
弹出链接,您需要三个独立的事件处理程序,而不仅仅是一个。这就是为什么当你点击一个弹出窗口时弹出多个框,而当你点击另外两个弹出框时没有弹出窗口。
为了使这个工作,我会重写弹出脚本以支持多个弹出窗口。但是你可以在不使用函数的情况下简单地执行此操作。
HTML(将您的代码与您的代码合并.ID,类名与javascript相关)
<li id='sinopsi' class='openlink'>Sinopsi
<div class='popup' id='popup1'>Popup 1<span class='closex'>x</span></div>
</li>
<li id='fitxa' class='openlink'>Fitxa
<div class='popup' id='popup2'>Popup 2<span class='closex'>x</span></div>
</li>
<li id='autors' class='openlink'>Autors
<div class='popup' id='popup3'>Popup 2<span class='closex'>x</span></div>
</li>
的JavaScript
<script>
$(function(){
$('#sinopsi').click(function(){ // Activates the popups
$('#popup1').fadeIn('fast')
});
$('#fitxa').click(function(){
$('#popup2').fadeIn('fast')
});
$('#sinopsi').click(function(){
$('#popup3').fadeIn('fast')
});
/* //Note that if your HTML is properly nested you could easily have this command execute your popups instead of the three above
$('.openlink').click(function(){
$(this)
.find('.popup') // finds your nested popup div
.fadeIn('fast')
;
});
*/
$('.closex').click(function(){ // closes the popup, when X is clicked
$('.popup').fadeOut('fast');
});
$('.popup').keypress(function(e){ // close popup via ESC key.
if(e.keyCode==27){
$(this).fadeOut('fast');
}
});
$('.popup').css({opacity: "0.7"}); // copies over the transparency
});
</script>
CSS(确保隐藏弹出窗口。)
.popup{display:none}
祝你好运,这个网站看起来不错。你应该真正了解更多关于jQuery的知识,与JavaScript相比,它非常强大且易于使用。我想你会喜欢的。
http://jquery.com/ http://api.jquery.com/click/
P.S。不要担心所有这些匿名函数function(){//do stuff}
,它只是function bar(){//do stuff} $('.open').click(bar)