0

折りたたみ可能なセットの 1 つの要素でクリックをバインドする方法は?

<div data-role="content">
   <div data-role="collapsible-set" data-theme="d" data-content-theme="d">
       <div data-role="collapsible" id="expand">
        <h3>header</h3>
       </div>
   </div>
</div>

これを試して:

$(document).on('click', '#expand', function (e) {
        e.stopImmediatePropagation();
        e.preventDefault();
        console.log('ekb'); // my stuff
    });

デモ: http://jsfiddle.net/pExFF/3/

4

1 に答える 1

2

jQuery Mobile の機能強化により、クリック イベントにバインドしたアクションは、ヘッダーをクリックしてもトリガーされないようです。JQM の機能強化が行われた後に、イベントを適切な DOM 要素にバインドするというオプション (私が認めているあまりきれいではありません) が考えられます。本当にデフォルトの動作を防ぐつもりなら (折りたたみ可能なものを折りたたまないようにします!)、次のようなコードを使用できます:

$(document).on('pageinit',function (f) {
  //pageinit event is triggered after the page is initialized

    $("#expand").find("*").click(function (e) {
      //apply to all descendant of your element "#expand a" selector would be sufficient to cover the header
         e.stopImmediatePropagation();
         e.preventDefault();
     console.log('ekb');
    });
});

結果はここに表示されます

于 2013-01-09T11:15:10.597 に答える