2

ボタンをクリックすると、アラートメッセージが表示されます。以下は私が使用しているコードです。

<script type="text/javascript">
// $(document).ready(function(){
    $("#clickHere").bind("click",function(){
        alert('clicked');
     });
 //});
 </script>

.ready()行がコメント化されているため、ボタンをクリックしてもアラートメッセージはスローされませんが、これらの行のコメントを解除すると、アラートがスローされます。「クリック」イベントのボタンにバインディングを追加したので、どちらの場合もアラートメッセージを表示するべきではありませんか?

4

6 に答える 6

6

javascriptブロックが解析された時点では、DOMの準備ができていないため、参照する要素はまだ存在していません。

于 2013-02-22T16:49:43.157 に答える
3

これは、.ready()関数がjqueryコールバックショートカットであり、DOM(html)がブラウザーにロードされた後にのみトリガーされるためです。レディの外で関数をバインドすると、DOM要素がまだロードされていないため、正しくバインドされない可能性がかなり高くなります。

スクリプトをドキュメントの一番下、bodyタグを閉じる直前に移動してみると、他のDOM要素の後に読み込まれますが、標準的な方法として、DOMがバインドされるまでDOM要素をバインドしません。ロードされました。

于 2013-02-22T16:51:11.133 に答える
1

DOMにアイテムを適用する前に、JavaScriptでDOMを操作できるようにする必要があります。

なぜそれが必要なのかについては、ドキュメントを読んでみてください。

于 2013-02-22T16:50:50.223 に答える
1

ボタンがすでにDOMで作成されていない限り、そうではありません。コードがページの先頭にある場合、これは発生しませんが、body終了タグの前にある場合は問題ありません。

于 2013-02-22T16:50:53.893 に答える
1

DOMを解析する準備ができていないときに要素にイベントハンドラーを設定する機能を実現するには、「on」メソッドを使用できます。このメソッドでは、「要素の1つ以上のイベントにイベントハンドラー関数をアタッチして、将来"。

http://api.jquery.com/on/

于 2013-02-22T17:15:22.977 に答える
0

非常に大まかな意味で、他のプログラミング言語のMain()メソッドと同じように$('document')。ready()を考えてください。

于 2013-02-22T16:51:40.097 に答える