jQuery看不到新元素

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (38)

我有一个简单的问题:

$(document).ready(function() {

     $("#instrument").change(function() {
         $("#tunings").html("<select id=\"TuningSelector>\"[..]</div>");
     });

     $("#TuningSelector").change(function() {
         DoSomethingWithTheValue();
      }); 

 });

问题是:当仪器发生变化时,脚本不再响应TuningSelector的更改。就像JQuery没有看到新的TuningSelector元素..。

我是否需要调用JQuery之类的刷新?这样它就能看到更新的DOM?

提问于
用户回答回答于

通常,你应该使用on,以便将处理程序应用于与选择器匹配的新元素,并委托给DOM中的更高元素。

$('body').on( 'change', '#control', function() {
    DoSomething();
});
用户回答回答于

如果你希望事件应用于新元素,可以使用.live方法,但是jQuery 1.3不支持blur,focus,mouseenter,mouseleave,change,将事件提交为实况事件。

作为替代方案,你可以使用liveQuery插件。

扫码关注云+社区

领取腾讯云代金券