如果填充了两个或更多DIV,我如何显示第三个?

时间:2013-06-14 10:25:41

标签: jquery html function

我正在尝试用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时,用户需要提交信息。希望这也证明对其他人有用:)

1 个答案:

答案 0 :(得分:2)

您可以通过各种更简单的方法来完成此操作。取决于你是如何填充divs的?否则,根据您的确切问题,您可以这样做。

$(function(){
if ($.trim($('#Prod1').text()!='' && $.trim($('#Prod2').text()!='' &&  $.trim($('#Prod3').text()!='')))) {
    $('#prodSubmit').show();
}

})