2

この質問はすでに尋ねられていますが、私はその最も基本的なレベルで立ち往生しています。selectタグを除いてhtmlに何も追加しておらず、jqueryで変更イベントをキャッチしようとしています。これが私のコードです:

<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
<script>
  $('#target').bind("change", function{
    alert('Changed');
  });
</script>
</head>
<body>
<form>
  <select id="target">
    <option value="option1" selected="selected">Option 1</option>
    <option value="option2">Option 2</option>
  </select>
</form>
</body>

change() 関数でさえ機能しません。

<script>
  $('#target').change(function() {
    alert('Changed');
  });
</script>

私がどこで間違っているのかを理解するのを手伝ってください。Stackoverflow の同様の問題の 1 つで、答えとしてhttp://jsfiddle.net/78x9Q/4/を取得しました。しかし、そのコードを正確にコピーして貼り付けてもうまくいきません。

PS:私がテストしたところ、jQueryがロードされ、これを使用して動作することがわかりました:

<script>
$(function() {
  alert('Changed');
});
</script>
4

4 に答える 4

7

まだビルドされていないときに dom を操作しようとするため、コードは機能しません。これを使って:

$(document).ready(function () {
  // your code
});

次に、dom が既にビルドされているときにコードが実行されます。

于 2012-09-01T04:22:22.623 に答える
4

これ:

<script>
  $('#target').change(function() {
    alert('Changed');
  });
</script>

次のようになります。

<script>
  $(function () {
    $('#target').change(function() {
      alert('Changed');
    });
  });
</script>

ドキュメントの準備が整う前にバインディングを実行していることを意味します。

于 2012-09-01T04:21:54.150 に答える
3

このように使用します

$(document).ready(function () {
   $('#target').change(function() {
     alert('Changed');
   });
});
于 2012-09-01T04:23:40.343 に答える
2

ドキュメント準備完了イベント内にjqueryコードをラップする必要があります

于 2012-09-01T04:22:39.880 に答える