我如何在jQuery中使用.on()
作为不是直接父级的元素?
.live()
看起来像这样
$('.home_collapsibles').find('.ui-collapsible-heading').live('tap', function (event) {});
使用
元素<div data-role="collapsible-set" class="home_collapsibles ui-collapsible-set" data-theme="c" data-inset="false">
<div data-role="collapsible" data-collapsed="true" data-collapsed-icon="arrow-r" data-expanded-icon="arrow-d" data-iconpos="right" class="ui-collapsible ui-collapsible-collapsed">
<h3 class="ui-collapsible-heading ui-collapsible-heading-collapsed"><a href="#" class="ui-collapsible-heading-toggle ui-btn ui-btn-icon-right ui-btn-up-c" data-corners="false" data-shadow="false" data-iconshadow="true" data-wrapperels="span" data-icon="arrow-r" data-iconpos="right" data-theme="c">
这是我的JS小提琴 http://jsfiddle.net/jostster/WD6DD/
编辑:这似乎有效http://jsfiddle.net/jostster/fNNnJ/,但我想将听众仅限于.home_collapsibles
答案 0 :(得分:2)
$('.home_collapsibles').on('tap', '.ui-collapsible-heading', function () {});
答案 1 :(得分:1)
根据其后继者重写.live()方法 直截了当;这些是用于所有人的等效呼叫的模板 三种事件依恋方法:
$(selector).live(events, data, handler); // jQuery 1.3+
$(document).delegate(selector, events, data, handler); // jQuery 1.4.3+
$(document).on(events, selector, data, handler); // jQuery 1.7+
对于仍在使用.live()的网页,此版本特定差异列表可能会有所帮助:
在jQuery 1.7之前,阻止更多处理程序在执行后执行 使用.live()绑定,处理程序必须返回false。调用 .stopPropagation()不会实现这一点。截至jQuery 1.4 .live()方法支持自定义事件以及所有JavaScript事件 那个泡沫。它还支持某些不会冒泡的事件, 包括改变,提交,聚焦和模糊。在jQuery 1.3.x中只有 可以绑定以下JavaScript事件:click,dblclick,keydown, 按键,键盘,mousedown,mousemove,mouseout,mouseover和 鼠标松开。