0

私はこの応答しないスクリプト エラーに本当に悩まされています。これが私のコードです。

function changeTextAdd(id)
{

    $(".awp_class_horizantal span").html('');
    $(".awp_class_horizantal").click(function() {
            changeTextAdd(this.id);
        });
    $(".awp_class_vertical span").html('');
    $(".awp_class_vertical").click(function() {
            changeTextAdd(this.id);
        });
    $(".awp_class_vertical2 span").html('');
    $(".awp_class_vertical2").click(function() {
            changeTextAdd(this.id);
        });

    for(var i=0; i<addtionalspanIds.length;i++)
    {

        if($("#"+addtionalspanIds[i]+"_txt").val().length > 0)
        {    
            // console.log(addtionalspanIds[i]+"if");
            $("#"+addtionalspanIds[i]+' span').html($("#"+addtionalspanIds[i]+"_txt").val());
        }else {
            // console.log(addtionalspanIds[i]+"else");
            $("#"+addtionalspanIds[i]+' span').html('');
        }
    }
    var defaultValue = '';
    if($("#"+id+"_txt").val().length > 0){        
        defaultValue = "<option value='"+$("#"+id+"_txt").val()+"'>"+$("#"+id+"_txt").val()+"</option>";
    }
    $('#'+id+' span').html("<select id='"+id+"_spanSelectBox' class='spanSelectBox' name='span1' style='width:"+(cellWidth-2)+"px;z-index:1000;'>"+defaultValue+"<option value=''>--select--</option><option value='Wall panel'>Wall panel</option><option value='DRAPE'>DRAPE</option></select>");

    $("#"+id).attr('onclick','').unbind('click');
    $(".spanSelectBox").on('change', whenSpanSelectChangedAdd);
}

いくつかのスパンをクリックしてこの関数を呼び出しています。これらのスパン タグは、別の関数の for ループにあります。Firefox では、応答しないスクリプトが jquery-1.7.1.min.js であることを示しています。なぜjqueryライブラリを指しているのですか?

これは、上記の関数を呼び出しているループ フォームです。

for(var i=1; i<=sidewalls; i++)
{
    for(var j=1; j<=backwalls; j++)
    {
        ////////////////////// First Row in the diagram ///////////////////
        //console.log(i+"  "+j);
        if((i == 1 && j < backwalls))
        {

            var countVer = count++;

            var newDiv = "<span class='add_droppable_span_class' id='add_droppable"+i+""+j+"' style='width:"+(cellWidth-2)+"px; height:"+(cellHeight-2)+"px;display:inline-block;margin:0px;padding:1px;float:left;'><span class='awp_class_vertical' id='awp_span_"+countVer+"' style=' height:"+(cellHeight-2)+"px;'  onclick='changeTextAdd(this.id);'><span style='position:relative; top:40%; white-space: nowrap; left:-9px;'></span></span></span><input type='hidden' name='awp_span_"+countVer+"_txt' id='awp_span_"+countVer+"_txt'>";
            $("#inner_div_addtional").append(newDiv);
        }                        
        ////////////////////// Second Row except last block  ///////////////////
        else if(i > 1 && j < backwalls && i != sidewalls) 
        {
            var countHor = count++;
            var countVer = count++;
            var newDiv = "<span class='add_droppable_span_class' id='add_droppable"+i+""+j+"' style='width:"+(cellWidth-2)+"px; height:"+(cellHeight-2)+"px;display:inline-block;margin:0px;padding:1px;float:left;'><span class='awp_class_horizantal' id='awp_span_"+countHor+"' style='width:"+(cellWidth-2)+"px;'    onclick='changeTextAdd(this.id);'><span></span></span><span class='awp_class_vertical2' id='awp_span_"+countVer+"' style=' height:"+(cellHeight-2)+"px;'  onclick='changeTextAdd(this.id);'><span style='position:relative; top:40%; white-space: nowrap; left:-9px;'></span></span></span><input type='hidden' name='awp_span_"+countHor+"_txt' id='awp_span_"+countHor+"_txt'><input type='hidden' name='awp_span_"+countVer+"_txt' id='awp_span_"+countVer+"_txt'>";

            $("#inner_div_addtional").append(newDiv);
        }else if(i == sidewalls && j < backwalls) ///////// Last Row except last block//////////////
        {
            var countHor = count++;
            var countHor2 = count++;
            var countVer = count++;
            var newDiv = "<span class='add_droppable_span_class' id='add_droppable"+i+""+j+"' style='width:"+(cellWidth-2)+"px; height:"+(cellHeight-2)+"px;display:inline-block;margin:0px;padding:1px;float:left;'><span class='awp_class_horizantal' id='awp_span_"+countHor+"' style='width:"+(cellWidth-2)+"px;'    onclick='changeTextAdd(this.id);'><span></span></span><span class='awp_class_vertical2' id='awp_span_"+countVer+"' style=' height:"+(cellHeight-2)+"px;'  onclick='changeTextAdd(this.id);'><span style='position:relative; top:40%; white-space: nowrap; left:-9px;'></span></span><span class='awp_class_horizantal' id='awp_span_"+countHor2+"' style='width:"+(cellWidth-2)+"px;top:-19px;' onclick='changeTextAdd(this.id);'><span></span></span></span><input type='hidden' name='awp_span_"+countHor+"_txt' id='awp_span_"+countHor+"_txt'><input type='hidden' name='awp_span_"+countVer+"_txt' id='awp_span_"+countVer+"_txt'><input type='hidden' name='awp_span_"+countHor2+"_txt' id='awp_span_"+countHor2+"_txt'>";
            $("#inner_div_addtional").append(newDiv);
        }
        ////////////////////// Starting From Second row all last blocks ///////////////////
        else if((i > 1 && j == backwalls) && (i != sidewalls))
        {
            var countHor = count++;
            var countVer = count++;
            var newDiv = "<span class='add_droppable_span_class' id='add_droppable"+i+""+j+"' style='width:"+(cellWidth-2)+"px; height:"+(cellHeight-2)+"px;display:inline-block;margin:0px;padding:1px;float:left;'><span class='awp_class_horizantal' id='awp_span_"+countHor+"' style='width:"+(cellWidth-2)+"px;'    onclick='changeTextAdd(this.id);'><span></span></span></span><input type='hidden' name='awp_span_"+countHor+"_txt' id='awp_span_"+countHor+"_txt'><input type='hidden' name='awp_span_"+countVer+"_txt' id='awp_span_"+countVer+"_txt'>";
            $("#inner_div_addtional").append(newDiv);
        }else if(i == sidewalls && j == backwalls) ///////// Last Row Last Block//////////////
        {
            var countHor = count++;
            var countHor2 = count++;
            var countVer = count++;
            var newDiv = "<span class='add_droppable_span_class' id='add_droppable"+i+""+j+"' style='width:"+(cellWidth-2)+"px; height:"+(cellHeight-2)+"px;display:inline-block;margin:0px;padding:1px;float:left;'><span class='awp_class_horizantal' id='awp_span_"+countHor+"' style='width:"+(cellWidth-2)+"px;'    onclick='changeTextAdd(this.id);'><span></span></span><span class='awp_class_horizantal' id='awp_span_"+countHor2+"' style='width:"+(cellWidth-2)+"px;top:"+(cellHeight-19)+"px;' onclick='changeTextAdd(this.id);'><span></span></span></span><input type='hidden' name='awp_span_"+countHor+"_txt' id='awp_span_"+countHor+"_txt'><input type='hidden' name='awp_span_"+countVer+"_txt' id='awp_span_"+countVer+"_txt'><input type='hidden' name='awp_span_"+countHor2+"_txt' id='awp_span_"+countHor2+"_txt'>";
            $("#inner_div_addtional").append(newDiv);
        }                    
        else
        {
            var newDiv = "<span id='add_droppable"+i+""+j+"' style='width:"+(cellWidth-2)+"px; height:"+(cellHeight-2)+"px;display:inline-block;margin:0px;padding:1px;float:left;'></span><input type='hidden' name='add_droppable"+i+""+j+"_txt' id='add_droppable"+i+""+j+"_txt'>";
            $("#inner_div_addtional").append(newDiv);
        }
    }
}

私を助けてください。

4

1 に答える 1

0

ここで RECURSION を使用していました。

関数changeTextAddは、次の行で単独で呼び出されます。

$(".awp_class_horizantal span").html('');
$(".awp_class_horizantal").click(function() 
{
    changeTextAdd(this.id); // Here is your Recursion of the same function 
});

そして、クリックイベントハンドラーは関数内で無限にリバウンドしています..「再帰」について確認してください。

于 2013-06-22T09:58:58.600 に答える