открытие фантазии, когда я не хочу - PullRequest
0 голосов
/ 01 октября 2011

Я игра в Jeopardy, и я использую плагин лайтбокса FancyBox, чтобы показать все вопросы.

Я пытаюсь создать бонусный вопрос. Этот вопрос должен появиться после того, как все 25 мест исчезли. В настоящее время я использую большой оператор if:

if($('#html5_100').is(':hidden') &&$('#html5_200').is(':hidden') &&$('#html5_300').is(':hidden') &&$('#html5_400').is(':hidden') &&$('#html5_500').is(':hidden') &&$('#attr_100').is(':hidden') &&$('#attr_200').is(':hidden') &&$('#attr_300').is(':hidden') &&$('#attr_400').is(':hidden') &&$('#attr_500').is(':hidden') &&$('#tf_100').is(':hidden') &&$('#tf_200').is(':hidden') &&$('#tf_300').is(':hidden') &&$('#tf_400').is(':hidden') &&$('#tf_500').is(':hidden') &&$('#dtag_100').is(':hidden') &&$('#dtag_200').is(':hidden') &&$('#dtag_300').is(':hidden') &&$('#dtag_400').is(':hidden') &&$('#dtag_500').is(':hidden') &&$('#tag_100').is(':hidden') &&$('#tag_200').is(':hidden') &&$('#tag_300').is(':hidden') &&$('#tag_400').is(':hidden') &&$('#tag_500').is(':hidden')){
$('#bonus').fancybox({ 
'transitionIn' : 'elastic',
'transitionOut' : 'elastic', 
'hideOnOverlayClick':false,
'hideOnContentClick':false,
'showCloseButton' : false,
'overlayOpacity' : 1
}).click();
}

И я пытаюсь использовать $('#ID').is(':hidden');

Я поместил 25 из этих ifs в каждую функцию Click для каждой кнопки. Проблема в том, что когда я нажимаю кнопку «Отправить», он открывает это окно. Есть ли способ остановить это?

Если вам нужна дополнительная помощь в понимании, я могу загрузить свою игру и просто дать вам ссылку на нее.

Ответы [ 2 ]

2 голосов
/ 02 октября 2011

Кажется, что ваш код работает, как минимум для меня, поэтому, может быть, идентификатор не существует на странице?

Кроме того, возможно, лучший способ проверить все, если все эти div скрыты,быть просто зациклить их всех.Этот метод также упрощает добавление дополнительных вопросов с минимальными усилиями ( demo ):

var checkDivs = function() {
    var i, j, divs = 'html5 attr tf dtag tag'.split(' ');
    // loop through div names
    for (i = 0; i < divs.length; i++) {
        j = 1;
        // loop through all numbered div names (adding 100 each time)
        while ($('#' + divs[i] + '_' + (j * 100)).length) {
            // check if hidden
            if (!$('#' + divs[i] + '_' + (j * 100)).is(':hidden')) {
                return false;
            }
            j++;
        }
    }
    return true;
};
1 голос
/ 02 октября 2011

делает &&$('#html5_200').is(':hidden') как это в вашем коде? вам нужно изменить все эти "&& $" на && $('#html5_200').is(':hidden') (добавить пробел между && и $ () ),

редактирование: почему вы добавили .click() после звонка на $('#bonus').fancybox{ ... }? попробуйте удалить это из вашего кода, потому что я вызываю функцию .click (). если это тоже не поможет, мне придется посмотреть остальную часть вашего кода, чтобы понять это

...