我正在尝试用Javascript(主要是jQuery)编写一个函数,当一些DIV用内容填充时显示DIV,例如,
如果DIV 1和2填充了内容,比如两本书的列表,那么DIV三会显示允许他们提交该内容。
之前有没有人遇到过这个问题,或者有任何想法如何让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")
因为计数器仅在REL=DONE
时添加一个,如果REL丢失,它会自动“减去”一个,因此我的计数器在这种情况下最多只能达到三个。正如您在setInterval
语句末尾所看到的,当count=3
显示DIV时,用户需要提交信息。希望这也证明对其他人有用:)
答案 0 :(得分:2)
您可以通过各种更简单的方法来完成此操作。取决于你是如何填充divs的?否则,根据您的确切问题,您可以这样做。
$(function(){
if ($.trim($('#Prod1').text()!='' && $.trim($('#Prod2').text()!='' && $.trim($('#Prod3').text()!='')))) {
$('#prodSubmit').show();
}
})