Note that there are some explanatory texts on larger screens.

plurals
  1. POjquery popup window won't close with keypress but will onclick
    primarykey
    data
    text
    <p>I am having an annoying problem right now with jquery. before i explain it let me give you my code:</p> <pre><code>/***************************/ //@Author: Adrian "yEnS" Mato Gondelle //@website: www.yensdesign.com //@email: yensamg@gmail.com //@license: Feel free to use it, but keep this credits please! /***************************/ //SETTING UP OUR POPUP //0 means disabled; 1 means enabled; var popupStatus = 0; //loading popup with jQuery magic! function loadPopup($contact_selector){ //loads popup only if it is disabled if(popupStatus==0){ $("#backgroundPopup").css({ "opacity": "0.7" }).fadeIn("slow"); $contact_selector.fadeIn("slow"); popupStatus = 1; } } //disabling popup with jQuery magic! function disablePopup($contact_selector){ //disables popup only if it is enabled if(popupStatus==1){ $("#backgroundPopup").fadeOut("slow"); $contact_selector.fadeOut("slow"); popupStatus = 0; } } //centering popup function centerPopup($contact_selector){ //request data for centering var windowWidth = document.documentElement.clientWidth; var windowHeight = document.documentElement.clientHeight; var popupHeight = $("body").height(); var popupWidth = $("body").width(); //centering $contact_selector.css({ "position": "absolute", "top": windowHeight/2-popupHeight/2, "left": windowWidth/2-popupWidth/2 }); //only need force for IE6 $("#backgroundPopup").css({ "height": windowHeight }); } //CONTROLLING EVENTS IN jQuery $(document).ready(function(){ //LOADING POPUP //Click the button event! $("#button1").click(function(){ //centering with css centerPopup($('#popupContact1')); //load popup loadPopup($('#popupContact1')); }); $("#button2").click(function(){ //centering with css centerPopup($('#popupContact2')); //load popup loadPopup($('#popupContact2')); }); $("#button3").click(function(){ //centering with css centerPopup($('#popupContact3')); //load popup loadPopup($('#popupContact3')); }); $("#button4").click(function(){ //centering with css centerPopup($('#popupContact4')); //load popup loadPopup($('#popupContact4')); }); $("#button5").click(function(){ //centering with css centerPopup($('#popupContact5')); //load popup loadPopup($('#popupContact5')); }); $("#button6").click(function(){ //centering with css centerPopup($('#popupContact6')); //load popup loadPopup($('#popupContact6')); }); //CLOSING POPUP //Click the x event! $("#popupContactClose1").click(function(){ disablePopup($('#popupContact1')); }); $("#popupContactClose2").click(function(){ disablePopup($('#popupContact2')); }); $("#popupContactClose3").click(function(){ disablePopup($('#popupContact3')); }); $("#popupContactClose4").click(function(){ disablePopup($('#popupContact4')); }); $("#popupContactClose5").click(function(){ disablePopup($('#popupContact5')); }); $("#popupContactClose6").click(function(){ disablePopup($('#popupContact6')); }); //Click out event! $("#backgroundPopup").click(function(){ disablePopup(this); }); //Press Escape event! $(document).keypress(function(e){ if(e.keyCode==27){ disablePopup($('#popupContact1')); } }); $(document).keypress(function(e){ if(e.keyCode==27){ disablePopup($('#popupContact2')); } }); $(document).keypress(function(e){ if(e.keyCode==27 &amp;&amp; popupStatus==1){ disablePopup($('#popupContact3')); } }); $(document).keypress(function(e){ if(e.keyCode==27 &amp;&amp; popupStatus==1){ disablePopup($('#popupContact4')); } }); $(document).keypress(function(e){ if(e.keyCode==27 &amp;&amp; popupStatus==1){ disablePopup($('#popupContact5')); } }); $(document).keypress(function(e){ if(e.keyCode==27 &amp;&amp; popupStatus==1){ disablePopup($('#popupContact6')); } }); }); </code></pre> <p>so the problem is that when i try to use the keypress function to fadeout the div, only the background fades out leaving the div floating over the content pane. What is particularly weird is that the first instance of the code allows the fadeout on esc keypress but none of the others.</p> <p>Any idea what might be going wrong?</p> <p>Edit1: I realize that only the first $(document) call is working </p> <pre><code> //Press Escape event! $(document).keypress(function(e){ if(e.keyCode==27){ disablePopup($('#popupContact1')); } }); $(document).keypress(function(e){ if(e.keyCode==27){ disablePopup($('#popupContact2')); } }); $(document).keypress(function(e){ if(e.keyCode==27 &amp;&amp; popupStatus==1){ disablePopup($('#popupContact3')); } }); $(document).keypress(function(e){ if(e.keyCode==27 &amp;&amp; popupStatus==1){ disablePopup($('#popupContact4')); } }); $(document).keypress(function(e){ if(e.keyCode==27 &amp;&amp; popupStatus==1){ disablePopup($('#popupContact5')); } }); $(document).keypress(function(e){ if(e.keyCode==27 &amp;&amp; popupStatus==1){ disablePopup($('#popupContact6')); } }); }); </code></pre> <p>everything after the first call the background div fades and the text box is left over the container. If i switch the order of these calls and put disablePopup[($('#popupContact2')) before the disablePopup[($('#popupContact1')) then popupContact1 is left int he container on keypress but not popupContact2 </p> <p>edit: i realize that this question is a bit of a mess so I tried to be more clear in my execution. if you would like to continue to figure out the problem please see the new question at the following link: <a href="https://stackoverflow.com/questions/10125964/jquery-popup-window-wont-close-on-keypress">jquery popup window won&#39;t close on keypress</a></p> <p>edit2: this was resolved - pointy suggested i add a class to each of the items i need to clse and just have the js close all open popups - worked like a charm thank you all for your help</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload