| 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: 12 let
|
|||
0