19

我是 JQuery 的新手,所以请耐心等待:)。

我有一个简单的问题:

$(document).ready(function() {

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

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

 });

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

我需要在 JQuery 上调用刷新吗?这样它就可以看到刷新的 DOM?

4

2 回答 2

37

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

$('body').on( 'change', '#control', function() {
    DoSomething();
});
于 2009-05-02T15:56:06.483 回答
2

对于 jQuery 事件,如果您希望将事件应用于新元素,您可以使用.live方法,但是 jQuery 1.3 不支持 blur、focus、mouseenter、mouseleave、change、submit 事件作为实时事件。(更改、提交和模糊/聚焦在jQuery 1.4的路线图上)

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

于 2009-05-02T16:19:57.363 回答