0

こんにちは、すべての画像を取得しようとして問題が発生したため、それらをループして以下のイベント ハンドラーを追加できます。

  addEventListener('dragstart', handleDragStart, false);
  addEventListener('dragenter', handleDragEnter, false);
  addEventListener('dragover', handleDragOver, false);
  addEventListener('dragleave', handleDragLeave, false);

getelementbyid を試して、すべての画像が AJAX を介して動的に読み込まれるセクション領域を取得しようとしたため、少し戸惑っています。querySelectorAl l() に関しては、何も取得していないようです。私はこれを間違って使用しているだけだと思います。タグに反応しないのかもしれません。しかし、私は getElementsByTagName を試してみましたが、すべてを取得して HTMLCollection に入れているようです。それでも、HTML コレクションの長さは 0 です。Javascript (jquery ではない) を使用して、これらのイベント ハンドラーを各 IMG にアタッチするベスト プラクティスの方法はありますか? ここで、それらをつかんで操作する方法がわかりません。.length が機能していないようで、私が取得しているように見える HTMLCollection に慣れていません。

var imagesContainer = document.getElementById("images");

var allImages = document.querySelectorAll('#images img');
console.log(allImages);
console.log(allImages.length);

var allImages2 = imagesContainer.getElementsByTagName("img");
console.log(allImages2);
console.log(allImages2.length);
4

1 に答える 1

0

私はbfavarettoが正しいと判断しました。domがロードされているかどうかを確認するために、画像のロードのためのajax呼び出しが完了した後に追加イベントハンドラーを実行する場所に移動しました(ifステートメントでreadyStateとreadyStatusをチェックします)。DOMがHTMLCollectionと配列の長さをどのようにロードするかを個人的に誤解し、すべてがロードされるとロードされると思ったため、これまで考えたことはありませんでした。すべての画像を正しく取得していましたが、DOMが読み込まれず、私の理解から長さを取得して完全に構築していませんでした。

于 2013-01-19T14:35:31.417 に答える