添加将列表项添加到<选择> jQuery 时要捕获的事件
adding an event to catch when a list item is added to a <select> jQuery
我正在使用jQuery将事件添加到选择(多个)控件。这个想法是在列表中添加或删除项目时执行此事件。我已经尝试了$("#myselect").change()
函数,但这仅在您在列表中选择其他项目时引发事件。任何帮助将不胜感激。提前感谢!
更新:
HTML (为此示例自动生成,我输入了我的ID)
<select id="myselect" style="width: 143px; height: 125px; overflow: scroll;" ondblclick="GipRemoveSelectedItems(ctl00_ctl19_g_f081466b_5035_4884_b6db_009508a22e1c_ctl00_ctl05_ctl01_ctl00_ctl00_ctl04_ctl00_ctl00_MultiLookupPicker_m); return false" onchange="GipSelectResultItems(ctl00_ctl19_g_f081466b_5035_4884_b6db_009508a22e1c_ctl00_ctl05_ctl01_ctl00_ctl00_ctl04_ctl00_ctl00_MultiLookupPicker_m);" multiple="multiple" jQuery172007786130460086404="3"/>
jQuery- 在 $(document).ready() 内部
$("#myselect").change(function() {
//Does not enter on add or remove of an item
});
您可以使用
DOMSubtreeModified
事件并检查是否将新元素添加到 DOM.即,在您的情况下,新option
特定select
。
$("#SELECT_ID").bind("DOMSubtreeModified", function() {
alert("tree changed");
});
演示小提琴
您可以侦听 DOMNodeInserted
事件并检查新元素是否是特定select
的option
。
检查:如何在 DOM 中的每个元素中调用函数,即使它们是动态创建的
请注意,当前答案已被弃用,取而代之的是MutationObserver
API。
现在正确的方法是这样的:
$select = $('#myselect')
const observer = new MutationObserver(
() => { $select.trigger('mutated') }
)
observer.observe($select[0], { childList: true })
然后在事件触发器上执行某些操作:
$select.on('mutated', () => { console.log('mutated') })
相关文章:
- 如何在for循环中添加事件侦听器
- 如果选中了多个复选框,如何添加事件
- 正在ng重复元素上添加事件
- 在动态创建的标记上添加事件
- 如何在HTML列表中添加事件's子弹
- 将事件侦听器添加到文档,而不是签入元素存在,然后添加事件侦听器
- jQuery完整日历添加事件,仅包含月份和日期
- 是否可以在数字输入框中的小按钮中添加事件侦听器
- 在Google Chrome扩展中添加事件侦听器
- AngularJS:在.post()之后添加事件侦听器
- 对象 Javascript 中的标签无效 - 想要添加事件列表器
- 添加事件侦听器不起作用
- 如何为angular js条形图添加事件
- 在 http 请求中添加事件侦听器 ( request.on ) 是什么意思?而笏就是它的用途
- Iron:路由器在更改路由器上添加事件
- 如何为表行结果的每个按钮添加事件侦听器
- 在 javascript 中添加事件处理程序的位置
- YouTube API-动态添加事件侦听器
- 在聚合物的子菜单标题中添加事件
- 检查是否可以添加事件侦听器而不添加