当我不想要时,fancybox打开

时间:2011-10-01 19:35:00

标签: javascript jquery fancybox lightbox

我是一款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');

我在每个按钮的每个Click功能中放了25个ifs。问题是,一旦我点击提交,它就会打开这个fancybox。有办法阻止这个吗?

如果你需要更多的帮助,我可以上传我的游戏,只是给你一个链接。

2 个答案:

答案 0 :(得分:2)

看起来你的代码工作正常,至少对我而言,也许页面上不存在id?

另外,如果所有这些div都被隐藏,也许是一个更好的方法来检查所有这些div是否只是遍历所有这些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 :(得分:1)

你的代码中&&$('#html5_200').is(':hidden')是这样的吗?您需要将所有“&amp;&amp; $”更改为&& $('#html5_200').is(':hidden')(在&amp;&amp; $()之间添加空格)

编辑: 你有没有在.click()打电话后添加$('#bonus').fancybox{ ... }?尝试从你的代码中删除它,因为我打电话给.click()函数触发这个。如果它也没有帮助,我将不得不看到你的其余代码来解决它