JQuery列表追加项不可选择
JQuery list append item not selectable
我有一个奇怪的问题与jquery追加到一个列表。
<ul id="idNicheItems" class="clScrollItems ui-widget-content ui-corner-all">
<li id="NicheItem_1"> Item 1</li>
<li id="NicheItem_2"> Item 2</li>
<li id="NicheItem_3"> Item 3</li>
<li id="NicheItem_4"> Item 4</li>
</ul>
列表是使用
的列表框类型控件的一部分。 $("#idNicheItems li").hover(function(){
$(this).addClass("clListHighlight");
},function(){$(this).removeClass("clListHighlight");});
一切正常
在json查询之后,我向列表添加了一个新项目。当我使用firebug检查它时,它看起来就像列表中的其他项目一样- id是唯一的-一切看起来都很好。
问题是我不能突出显示它或选择它。
我的想法是我必须把上面的称为"$("#idNicheItems li")
。盘旋……再次附加悬停功能后插入节点-但这似乎不工作-除非我有一个错误在我的错误修复。
我讲对了吗?
回答自己的问题 -但是我的代表比蚯蚓的肚脐还低-但它可能对其他人有用,所以不会删除它。
看起来我有一个bug在我的bug修复或一个肮脏的缓存-当然修复自己20秒后张贴....
无论如何今天的课。在使用jQuery将一个新项目插入到一个已有的列表或项目集合中,这些列表或项目集合有与它们相关的行为,不要忘记将行为附加到新项目上。
换句话说,为新项调用您在原始项上调用的选择器代码
你可以使用live(),它绑定到DOM树的根节点,而不是一个元素:
$("#idNicheItems li").live('mouseover',function(){$(this).addClass("clListHighlight")});
$("#idNicheItems li").live('mouseout',function(){$(this).removeClass("clListHighlight")});
问题的原因是$("#idNicheItems li").hover(..)
将鼠标移过和移出处理程序仅绑定到调用.hover()时存在于DOM树中的那些元素。
您可以使用.on()
来解决这个问题,如:
$("#idNicheItems")
.on('mouseover', 'li', function() {
$(this).addClass("clListHighlight");
})
.on('mouseout', 'li', function() {
$(this).removeClass("clListHighlight");
});
相关文章:
- 为什么在fabricjs中可选择的不适用于一组圆
- 如何在引导日期选取器中限制可选择的日期范围
- Datatablesjquery插件-限制可选择的行数
- 使用jQuery使动态元素可选择
- jQuery可选择多个项目
- jQuery UI 可选择在选定/未选定时添加/删除类
- 可选择序列化 jQuery UI::如何显示 html 标记中的内容而不是索引值
- 可选择限位止损
- 可选择的限制
- 使用复选框更改背景颜色,可选择有限数量的复选框
- 限制可选择的 DOM 复选框
- 如何在 mtz.monthpicker 中设置可选择的最大月份
- 由用户在可选择的表上使用 innerHTML 写入
- 可选择 iOS Webkit 只读输入
- react native:可选择的部分列表视图出现错误
- 在会话到期前通知用户,可选择续订会话
- 如何提供日期选择器,该日期选择器包含一个可选择的日期、月份和年份选项
- 尝试使用SoundJS和jQuery's可选择,但声音不;我不在萤火虫上工作
- HTML图像地图,可选择区域触发弹出内容
- 动态限制可选择的复选框的最大数量