Javascript 在“选择”下拉列表时触发“更改”操作,而不是在更改下拉列表值时触发

Javascript 在“选择”下拉列表时触发“更改”操作,而不是在更改下拉列表值时触发,javascript,jquery,selectlist,Javascript,Jquery,Selectlist,我有一些动态创建的下拉列表 我在保持代码干燥方面做得不错,但我有一个小问题 我指示jQuery在选择列表“更改”时触发一个事件,由于列表是动态构建的,所以当从服务器检索到响应时,它们会更改,jQuery正在考虑更改。但我真正想要的是,只有当从下拉列表中选择了一个选项时,才会触发该操作 $('select').change(function(){ var idx = $(this).index(); var query = $(this).val(); $.aj

我有一些动态创建的下拉列表

我在保持代码干燥方面做得不错,但我有一个小问题

我指示jQuery在选择列表“更改”时触发一个事件,由于列表是动态构建的,所以当从服务器检索到响应时,它们会更改,jQuery正在考虑更改。但我真正想要的是,只有当从下拉列表中选择了一个选项时,才会触发该操作

$('select').change(function(){ var idx = $(this).index(); var query = $(this).val(); $.ajax({ url: 'getNext', data: {query:query}, dataType: 'json', success: function(data){ var optionsList =''; for (var j=0; j'+data[j]+''; } $('select:eq('+idx+1+')').html(optionsList); } }); }); 我试过使用 $('select:selected').change() 但这不会触发任何事情。关于如何仅在选择选项时触发更改,而不是在创建选项或选择列表时触发更改的任何建议?

您是否尝试过:

$('select').click(
    function(){
        $(this).trigger('change');
    });
您是否尝试过:

$('select').click(
    function(){
        $(this).trigger('change');
    });
试一试

试一试


不幸的是,一个点击事件将不起作用,因为您可以通过制表符浏览表单元素并进行选择;也许$'select'。焦点会起作用,但是?不幸的是,单击事件不会起作用,因为您可以通过制表符查看表单元素并进行选择。啊,当然;也许$'select'。焦点会起作用,但是?我这样做,它会在被选中时触发,但这不是问题所在,它还会在附加下拉列表时触发。jQuery似乎将其视为“更改”,尽管这不是用户操作。我这样做,它会在选中时触发,但这不是问题所在,它还会在附加下拉列表时触发。jQuery似乎将其视为一种“改变”,尽管这不是用户操作。