我正在追加<li>
,当我尝试使用新的.on事件点击它时,它不起作用。我不想使用.live事件,因为它将来可能会被弃用。
以下是我的示例:http://jsfiddle.net/2Lbbe/
这适用于第一项,如果您创建新警报不起作用。
任何人都知道如何在不使用直播的情况下解决此问题?
答案 0 :(得分:2)
您实际上是在尝试执行以前称为.delegate()的操作。将事件处理程序附加到永久物,然后查看目标。
$("#bxs").on('click', 'li',function() {
来自docs:
.on(events [,selector] [,data],handler)
说明: 将一个或多个事件的事件处理函数附加到所选元素。
.on()现在能够满足.bind()。live()和.delegate()的用途,具体取决于它的使用方式。如果您希望处理程序应用于将来的项目,则必须使用可选的[,selector]
答案 1 :(得分:2)
你非常接近,你需要做的就是改变你的选择器设置:
这
$("#bxs li").on('click',function() {
要
$("#bxs").on('click', 'li',function() {
以下是对jsfiddle的更新:http://jsfiddle.net/jasper/2Lbbe/2/
使用像这样的.on()
函数与旧的.delegate()
函数相同:
$(elements).delegate(selector, events, data, handler); // jQuery 1.4.3+
$(elements).on(events, selector, data, handler); // jQuery 1.7+