如何使用jQuery.on()方法声明分组事件以识别未来的元素?

如何使用jQuery.on()方法声明分组事件以识别未来的元素?,jquery,onchange,Jquery,Onchange,我的结构如下: HTML <select name="var" id="myselect"> <option value="">Select</option> <option value="1">Value 1</option> <option value="2">Value 2</option> </select> 事件不会触发,因为select是在页面加载后动态创建的

我的结构如下:

HTML

<select name="var" id="myselect">
    <option value="">Select</option>
    <option value="1">Value 1</option>
    <option value="2">Value 2</option>  
</select>
事件不会触发,因为
select
是在页面加载后动态创建的

有人知道如何使用来识别具有分组事件的未来元素?

在你可能出错的事情中:

  • 您不需要导入jQuery
  • 在HTML之前调用脚本(只需将脚本放在正文末尾)
如果无法将脚本放在正文的末尾,请将其包含在就绪事件处理程序中:

$(function(){
 $("#myselect").on({
    click: function(){
        console.log("event click fired!");
    },
    change: function(){
        console.log("event change fired!");
    }
 });
});
编辑:

如果选择是动态创建的,请使用以下选项:

$(document.body).on('click', "#myselect", function(){
     console.log("event click fired!");
}).on('change', "#myselect", function(){
     console.log("event change fired!");
});

请注意,您可以将
document.body
替换为调用此代码时存在的元素的选择器,该选择器将包含select。

在某些浏览器中退出select后,以及在其他浏览器中选择选项时,将触发更改事件。您可能还希望查看“input”事件。@dystroy,我已经更新了问题,请回答look@KevinB,请查看我的编辑
$(document.body).on('click', "#myselect", function(){
     console.log("event click fired!");
}).on('change', "#myselect", function(){
     console.log("event change fired!");
});