jQuery选择“更改”事件未触发

我有三个依赖选择.
第一个,有一些价值观.

<select id="first">
<option value="1">v1</option>
<option value="2">v2</option>
</select>

第二和第三是空白的:

<select id="second"></select>
<select id="third"></select>

我想通过ajax请求填充空白选择.
所以我这样做:

jQuery('body').delegate('#first','change',function(){
jQuery.ajax(
{
'type':'GET',
'data':{'changed':$('#first').val()},
'url':'myURL1',
'cache':false,
'success':function(html){jQuery("#second").html(html)}});
return false;
});

所以它工作正常.第二个选择已填充,但是……没有’select’事件被激活为select’second’.
为了得到这个事件,我写道:

   $(document).ready(function()
    {
        $('#second').live("change", function()
        {
            alert('test');
        });
    });

但是没有警报“测试”可见.如何为第二次选择捕获动态加载内容的“更改”事件?

最佳答案
因为#second元素只是存在,所以不必使用委托和实时函数

$('#first').change(function(){ 
  $.ajax( 
  { 
    'type':'GET', 
    'data':{'changed':$('#first').val()}, 
    'url':'myURL1', 
    'cache':false, 
    'success':function(html){
      $("#second").html(html);
     }
   }); 
   return false; 
});

$('#second').live("change", function()   
{   
  alert('test');   
}); 

如果要在填充第二个选择后立即执行警报,则将其包含在$.ajax()的回调函数中

$('#first').change(function(){ 
  $.ajax( 
  { 
    'type':'GET', 
    'data':{'changed':$('#first').val()}, 
    'url':'myURL1', 
    'cache':false, 
    'success':function(html){
      $("#second").html(html);
      $("#second").change();
     }
   }); 
   return false; 
});

转载注明原文:jQuery选择“更改”事件未触发 - 代码日志