【发布时间】:2013-04-02 07:02:22
【问题描述】:
我正在阅读documentation of the .on event handler of jQuery 并开始使用它。
我有一个简单的
根据 .on 文档,如果您指定一个选择器,它将自动将这些事件处理程序添加到该容器内添加的与指定选择器匹配的任何新项目。
因此,就我而言,例如,我可以决定替换列表框中可用的
有人可能认为以下 sn-p 应该可以解决问题(至少,我做到了):
$('#dropdownlist').on('mousedown', 'option', function(e){
e.preventDefault();
$(this).prop('selected', $(this).prop('selected') ? false : true);
return false;
});
因此,当用户单击该列表框中的选项时,默认操作将被取消,并且根据该项目是否已被选中,它将反转该选择。
我创建了一个小小提琴来展示这种行为:fiddle
在那个小提琴中,第一个下拉列表的行为符合预期,但是在替换项目时功能会丢失。这仅适用于 FF 和 Chrome。
第二个下拉列表是我认为应该的(事件处理明智的),但除了在 Chrome 中之外,这似乎不起作用 -.- 替换项目时会保留该功能,因为在替换项目后单击项目时控制台仍会记录“2”。
有人能解释一下为什么会这样吗?难道我做错了什么? 请指出正确的方向!
谢谢!
~德克
【问题讨论】:
标签: jquery-selectors jquery jquery-on html-select