我正在尝试用 Javascript(主要是 jQuery)编写一个函数,当许多 DIV 填充有内容时,它会显示一个 DIV,例如,
如果 DIV 1 和 2 填充了内容,例如列表中的两本书,则出现 DIV 3 允许他们提交该内容。
以前有没有人遇到过这个问题,或者有任何想法如何让 jQuery 做到这一点,因为我需要在任何类型的提交数据可用之前填充两个 DIV。
我设法建立了一个小提琴:http: //jsfiddle.net/takuhii/xmnMG/3/
ALL CODE ON JSFIDDLE
任何帮助将不胜感激。
更新- 我是如何做到的:
基本上,我在我的每个函数中都设置了这个
$("#myID1").attr('rel', 'done');
$("#myID2").attr('rel', 'done');
$("#myID3").attr('rel', 'done');
所以它们现在看起来像这样:
$('#flyout1 .subProd').click(function() {
var id1 = $(this).attr('id');
$("#partnum1").val(id1);
$("#myID1").html($("#" + $(this).attr('id')).html());
$("#myID1").css("border", "none");
$("#mainID1 #close").css("display", "block");
$("#mainID1 .button, #mainID1 .qv").css("display", "none");
$("#myID1").attr('rel', 'done'); /* ADD REL=DONE to DIV */
});
然后运行它来检查REL=DONE
setInterval(function() {
var count = 0;
var Prod1 = $("#myID1").attr("rel");
if (Prod1 == "done") {
count += 1;
}
var Prod2 = $("#myID2").attr("rel");
if (Prod2 == "done") {
count += 1;
}
var Prod3 = $("#myID3").attr("rel");
if (Prod3 == "done") {
count += 1;
}
if (count == 3) {
$('#prodSubmit').show()
} else {
$('#prodSubmit').hide();
}
}, 300);
在我添加的每个删除功能上:
$("#myID1").removeAttr("rel")
$("#myID2").removeAttr("rel")
$("#myID3").removeAttr("rel")
因为计数器只加一个 if REL=DONE
,如果 REL 丢失,它会自动“减去”一个,因此在这种情况下,我的计数器最多只能达到三个。从setInterval
语句末尾可以看出,当count=3
它显示 DIV 时,用户需要在那里提交信息。希望这对其他人也有用:)