将事件添加到动态创建的对象

问题描述:

我创建了一个函数,其中类“.dropdown”在页面上的所有下拉菜单在更改时都会执行某些操作。但是,动态添加后续下拉列表不会触发事件。我如何使动态下拉触发更改事件?将事件添加到动态创建的对象

$(".dropdown").change(function() { 
    //Do Something 
}); 
+3

http://learn.jquery.com/events/event-delegation/ –

+0

'$(文件)。在( '变', “.dropdown”,function(){ //做点什么 });' –

+1

这个问题并没有显示解决问题的任何努力,而SO完全相同的问题有很好的答案。 – Jai

您可以使用event delegation附加更改事件动态创建的.dropdown元素:

$(document).on('change', ".dropdown", function() { 
    //Do Something 
}); 

$(document).on('change', '.dropdown', function() { 
    //Do Something 
}); 

结构是这样

$(static selector/parent).on('event', 'dynamically added element*', function() { 
    //Do Something 
}); 

*也包括目前已有的

使用event delegation

$(document).on('change','.dropdown',function() { 
//Do Something 
}); 

尝试

$(".dropdown").live("change", function() { 
      alert(1); 
     }); 
+0

要注意jq 1.9+的活着已经死了 –