-1

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

4

1 回答 1

2

您可以通过各种更简单的方法来做到这一点。取决于您填充 div 的准确程度?否则,根据您的确切问题,您可以这样做。

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

})

于 2013-06-14T10:30:02.080 回答