2017-02-06 6 views
0

私がしました:得ていない分、属性値が設定され

for(var k=0;k<10;k++){ 
    $(eleid).after('<li class="pgs_li_cls" id="stpli_'+k+'" data-pos="'+k+'"><input type="button" value="'+k+'" class="stkpgmb" id="stkpgid_'+k+'" onclick="func_is(this);"></li>'); 
} 

function func_is(ele){ 
    var max = 0, min=0; 
    $('.pgs_li_cls').each(function() { 
     max = Math.max($(this).attr("data-pos"), max); 
     min = Math.min($(this).attr("data-pos"), min); 
    }); 
    var an_id = ele.id; 
    an_id = an_id.substr(0, an_id.length-1); 
    $('#stpli_'+min).remove(); 
    console.log(max+" "+min); 
} 

あなたは、私が10回ボタンを含むliを作成し、これまでのボタンがクリックされた機能func_is()だ見ることができるように呼ばれている、だから何ボタンをクリックするとdata-posliが取得され、それが削除されます。

問題は、ボタンがクリックされた最初の時間のためにそれが分結果は素晴らしいですし、それが最小data-posliを削除10する0とmax結果であると見つけることです。

が、私は(最初のクリックがliデータ-POS 0を見つけることができません後、私のブラウザで検査)、それはli data-pos 0が削除されているにもかかわらず、1であることを仮定としてmin値がまだ0である別のボタンをクリックしてください。

私は本当に感謝は、誰かが私が間違って何をやって伝える:)

答えて

1

あなたはfunc_is機能で0に最小値を初期化しているためであるということです。

はちょっと奇妙だが、それが働いたこと

function func_is(ele){ 
    var max = 0, min= 1000; 
+0

大きな値に設定してみてください。ありがとう:) –

+1

なぜあなたはそれが奇妙だと思うか分かりません。最小の数を見つけようとしていて、* start *が0であれば、0になります(すべて> 0と仮定します)。 –

+0

@ freedomn-mまあ、私は 'min = math'がminの古い値を上書きするかもしれないと思った。 –

関連する問題