jquery没有看到新的元素

时间:2009-05-02 15:51:28

标签: jquery dom refresh

我是JQuery的新手,所以忍受我:)。

我有一个简单的问题:

$(document).ready(function() {

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

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

 });

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

我是否需要在JQuery上调用刷新器?这样它就能看到刷新的DOM?

2 个答案:

答案 0 :(得分:36)

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

$('body').on( 'change', '#control', function() {
    DoSomething();
});

答案 1 :(得分:2)

如果您希望事件应用于新元素,则使用jQuery事件,您将使用.live方法,但jQuery 1.3不支持模糊,焦点,鼠标中心,鼠标保存,更改,将事件作为实时事件提交。 (更改,提交和模糊/焦点在jQuery 1.4的roadmap上)

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