【问题标题】:jQuery change() and bind("change") do not workjQuery change() 和 bind("change") 不起作用
【发布时间】:2012-08-26 19:59:13
【问题描述】:

这个问题已经被问过了,但我被困在最基本的层面。除了选择标记并试图通过 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/ 作为答案。但即使是该代码的精确复制粘贴也不适合我。

P.S.:jQuery 正在加载,因为我对其进行了测试并发现使用它可以正常工作:

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

【问题讨论】:

    标签: javascript jquery html ajax dom


    【解决方案1】:

    像这样使用它

    $(document).ready(function () {
       $('#target').change(function() {
         alert('Changed');
       });
    });
    

    【讨论】:

    • 谢谢,效果很好,我只是错过了 Speransky 在回复中提到的事实。
    【解决方案2】:

    您需要将您的 jquery 代码包装在文档就绪事件中

    【讨论】:

      【解决方案3】:

      您的代码不起作用,因为您在 dom 尚未构建时尝试使用它。使用这个:

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

      然后你的代码将在 dom 已经构建后运行。

      【讨论】:

      • 这正是我需要的澄清。非常感谢。
      【解决方案4】:

      这个:

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

      应该是这样的:

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

      意味着您在文档准备好之前执行绑定。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-06-28
        • 2011-04-24
        • 2018-05-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多