0

.on()直接の親ではない要素に対してjQueryでどのように使用しますか?

.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

4

2 に答える 2

2
$('.home_collapsibles').on('tap', '.ui-collapsible-heading', function () {});
于 2012-10-09T23:27:38.163 に答える
1

後継者に関して .live() メソッドを書き直すのは簡単です。これらは、3 つのイベント添付メソッドすべてに対する同等の呼び出しのテンプレートです。

$(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() を使用して 1 回バインドした後にそれ以上のハンドラーの実行を停止するには、ハンドラーが false を返す必要がありました。.stopPropagation() を呼び出しても、これは達成されません。jQuery 1.4 の時点で、.live() メソッドは、バブリングするすべての JavaScript イベントだけでなく、カスタム イベントもサポートしています。また、変更、送信、フォーカス、ぼかしなど、バブルしない特定のイベントもサポートしています。jQuery 1.3.x では、次の JavaScript イベントのみをバインドできました: click、dblclick、keydown、keypress、keyup、mousedown、mousemove、mouseout、mouseover、および mouseup。

から: http://api.jquery.com/live/

于 2012-10-09T23:26:35.090 に答える