0

こんにちは、最初のプラグインに問題があります:-)

for ループ内にいくつかの変数を設定します。問題は、画像を削除しようとすると、#img-3 を 3 回削除しようとすることです。

for (i=1; i<=3; i++) {

  var insertImg = arrImgs[i];
  var deleteImg = '#img-' + i;

  $('<img src="'+ insertImg +'">').hide().appendTo('#mydiv').load(function(){
      $(this).show(0, function() {
           deleteImg.remove();                          
      });
  });

}
4

1 に答える 1

0

それdeleteImg.remove();がタイプミスであり、実際に投稿するつもりだったとすると、$(deleteImg).remove()ここにはいくつかの問題があります。

  1. 挿入する画像要素にIDを追加していません。使用してみてください:

    $('<img src="'+ insertImg +'" id="' + i + '" />')
    
  2. コールバックは変数を閉じており、deleteImg呼び出されたときにのみ変数に格納されている値を使用します。イベント(ロードイベント)に応答して呼び出されるので、これはループが完了したであり、その時点での値deleteImgは「#img-3」です。

    この問題の1つの解決策は、IIFEを使用しdeleteImgて、変数を閉じずにから値を渡すことです。これは次のようになります。

    .load((function(d){
        return function(){
            $(this).show(0, function() {
                 d.remove();                          
            });
        }
    })(deleteImg));
    
于 2013-03-18T21:16:25.093 に答える