Проблема лайтбокса jQuery - PullRequest
0 голосов
/ 17 июля 2010

У меня есть два элемента div, один - фон, а другой - контейнер для vid, который находится поверх первого.Другой div служит кнопкой, которая при нажатии запускает лайтбокс.Вот мой код:

//0 means disabled; 1 means enabled;

var popupStatus = 0;
var buttonDivID = "";
var conDivID = "";

//determine which div is clicked

function whichDiv( div ) {
    if( div==1){
        buttonDivID = "#vid";
        conDivID = "#popupContact";
    }
}

//loading popup with jQuery magic!

function loadPopup(){

    //loads popup only if it is disabled

if(popupStatus==0){

    $("#backgroundPopup").css({

        "opacity": "0.7"

    });

    $("#backgroundPopup").fadeIn("slow");

    $(conDivID).fadeIn("slow");

    popupStatus = 1;
}
}

//disabling popup with jQuery magic!

function disablePopup(){

//disables popup only if it is enabled

if(popupStatus==1){

    $("#backgroundPopup").fadeOut("slow");

    $(conDivID).fadeOut("slow");

    popupStatus = 0;
    buttonDivID = "";
    conDivID = "";
}
}

//centering popup

function centerPopup(){

//request data for centering

var windowWidth = document.documentElement.clientWidth;

var windowHeight = document.documentElement.clientHeight;

var popupHeight = $(conDivID).height();

var popupWidth = $(conDivID).width();

//centering

$(conDivID).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!

$(buttonDivID).click(function(){

    //centering with css

    centerPopup();

    //load popup

    loadPopup();
});


//CLOSING POPUP

//Click the x event!

$("#popupContactClose").click(function(){

    disablePopup();

});

//Press Escape event!

$(document).keypress(function(e){

    if(e.keyCode==27 && popupStatus==1){

        disablePopup();
    }
});
});

Я должен отметить, что я не создавал этот код, я просто изменил его в соответствии со своими потребностями.Проблема здесь в том, что когда я щелкаю где-нибудь на странице, кроме кнопки div, всплывающее окно фонового освещения появляется.И когда я закрываю контейнер vid, фоновый div остается видимым, а это не то, что мне нужно.Не могли бы вы сказать мне, что не так с моим кодом?

1 Ответ

1 голос
/ 17 июля 2010

Возможно, я что-то упускаю, но похоже, что buttonDivID устанавливается только в функции whichDiv, которая никогда не вызывается. Я бы начал там ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...