Autor Zpráva
Vlčice
Profil
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
Vlčice:
Na živou ukázku bohužel odkázat nemůžu
použi http://jsfiddle.net/
Vlčice
Profil
http://jsfiddle.net/ssWMV/8/
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

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0