2

这个问题已经被问过了,但我坚持最基本的水平。除了选择标记并试图通过 jquery 捕获更改事件外,我没有在我的 html 中添加任何内容。这是我的代码:

<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 上的一个类似问题中,我得到了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 回答