Autor | Zpráva | ||
---|---|---|---|
Vlčice Profil |
#1 · Zasláno: 1. 5. 2013, 16:56:23
Zdravím,
s JS zatím ještě nejsem moc kamarád, takže si musím nechat poradit. Na stránkách potřebuju vytvořit několik pop-up divů. Na živou ukázku bohužel odkázat nemůžu, tak snad bude stačit kód. První pop-up div funguje úplně bez problémů, druhý sice vyskočí, ale už nejde zavřít. V čem může být problém? HTML: <a href="#" class="topopup">Pop-up 1</a> <a href="#" class="topopup2">Pop-up 2</a> <div id="toPopup"> <div class="close"></div> <div id="popup_content">Obsah pop-up divu 1</div> </div> <div id="toPopup"> <div class="close"></div> <div id="popup_content">Obsah pop-up divu 2</div> </div> JS: jQuery(function($) { $("a.topopup").click(function() { loading(); // loading setTimeout(function(){ // then show popup, deley in .5 second loadPopup(); // function show popup }, 0); // .5 second return false; }); $("a.topopup2").click(function() { loading(); // loading setTimeout(function(){ // then show popup, deley in .5 second loadPopup2(); // function show popup }, 0); // .5 second return false; }); /* event for close the popup */ $("div.close").hover( function() { $('span.ecs_tooltip').show(); }, function () { $('span.ecs_tooltip').hide(); } ); $("div.close").click(function() { disablePopup(); // function close pop up }); $(this).keyup(function(event) { if (event.which == 27) { // 27 is 'Ecs' in the keyboard disablePopup(); // function close pop up } }); $("div.close").hover( function() { $('span.ecs_tooltip').show(); }, function () { $('span.ecs_tooltip').hide(); } ); $("div.close").click(function() { disablePopup2(); // function close pop up }); $(this).keyup(function(event) { if (event.which == 27) { // 27 is 'Ecs' in the keyboard disablePopup2(); // function close pop up } }); $('a.livebox').click(function() { alert('Hello World!'); return false; }); /************** start: functions. **************/ function loading() { $("div.loader").show(); } function closeloading() { $("div.loader").fadeOut('normal'); } var popupStatus = 0; // set value function loadPopup() { if(popupStatus == 0) { // if value is 0, show popup closeloading(); // fadeout loading $("#toPopup").fadeIn(0500); // fadein popup div $("#backgroundPopup").css("opacity", "0.7"); // css opacity, supports IE7, IE8 $("#backgroundPopup").fadeIn(0001); popupStatus = 1; // and set value to 1 } } function disablePopup() { if(popupStatus == 1) { // if value is 1, close popup $("#toPopup").fadeOut("normal"); $("#backgroundPopup").fadeOut("normal"); popupStatus = 0; // and set value to 0 } } function loadPopup2() { if(popupStatus == 0) { // if value is 0, show popup closeloading(); // fadeout loading $("#toPopup2").fadeIn(0500); // fadein popup div $("#backgroundPopup").css("opacity", "0.7"); // css opacity, supports IE7, IE8 $("#backgroundPopup").fadeIn(0001); popupStatus = 1; // and set value to 1 } } function disablePopup2() { if(popupStatus == 1) { // if value is 1, close popup $("#toPopup2").fadeOut("normal"); $("#backgroundPopup").fadeOut("normal"); popupStatus = 0; // and set value to 0 } } /************** end: functions. **************/ }); // jQuery End |
||
final Profil |
#2 · Zasláno: 1. 5. 2013, 18:20:33
|
||
Vlčice Profil |
#3 · Zasláno: 1. 5. 2013, 20:14:33
|
||
honzaik Profil |
ten kód je strašnej, až mě začala bolet hlava :D myslim že problém je v tom že tam voláš obě metody na stejnej element loadPopup atd a mněí to tam to popupstatus a všechno :D nevim jak bych to popsal. celej ten kód bych bejt tebou přepsal trochu se zamyslel co by šlo vylepšit atd
např když prohodíš pořadí těhle funkcí $("div.close").click(function() { disablePopup(); // function close pop up }); $("div.close").click(function() { disablePopup2(); // function close pop up }); tak zase u toho 1. to zustane ten div |
||
Časová prodleva: 11 let
|
0