我是一款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。有办法阻止这个吗?
如果你需要更多的帮助,我可以上传我的游戏,只是给你一个链接。
答案 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()函数触发这个。如果它也没有帮助,我将不得不看到你的其余代码来解决它