2016-09-21 1 views
-1

divをクリックしたときに、そのdivs IDのパラメータで関数が呼び出されたときに関数が機能します。 :divを渡すときにイベント機能がトリガーする

$('#areaOne').on('show.bs.collapse', onSectionClick('#areaOne')); 


function onSectionClick(){ 
    var x = $('#areaOne).hasClass('toggled') ? 'false' : 'true'; 
    console.log(x) 
} 

しかし、私はこのようにそれをしようとすると:

$('#areaOne').on('show.bs.collapse', onSectionClick('#areaOne')); 


    function onSectionClick(secID){ 
    var x = $(secID).hasClass('toggled') ? 'false' : 'true'; 
    console.log(x) 
    } 

次に、関数は、すぐにエリアをクリックしたときにページがというし、ロードされていると呼ばれています。私はそれが同じ機能を引き起こすべき多くの領域があるので、この方法で動作させたい。

私はJavascriptの新機能ですので、これをより良い方法で行う方法についてのアドバイスやアドバイスをいただければ幸いです。

+0

[jQueryの.click-passパラメータをユーザー関数に渡す](0120-338-501) – Xufox

答えて

3

問題は、関数参照を与える代わりに関数を呼び出すことです。試してみてください:

$('#areaOne').on('show.bs.collapse', function(){onSectionClick('#areaOne')}); 
1

ライン

$('#areaOne').on('show.bs.collapse', onSectionClick('#areaOne')); 

通話onSectionClick'#areaOne'に渡し、そしてfoo(bar())通話bar正確な方法、onに avlueそのリターンを渡し、その戻り値を渡しますfoo

あなたがイベントで呼ばれるようにそれを設定したい場合は、例えば、機能を呼び出すことではなくよりも機能の参照を渡す:

$('#areaOne').on('show.bs.collapse', function() { onSectionClick('#areaOne'); }); 

あなたのケースでは、しかし、あなたはおそらく「ドンそれでもやりたい代わりに:

$('#areaOne').on('show.bs.collapse', onSectionClick); 
// Note no() -------------------------------------^ 

...とonSectionClickでは、クリックされた要素('areaOne'   —あなたがそれを必要とする場合#を追加)のIDを取得するためにthis.idを使用しています。

そして、あなたはまた、フックアップしたい他の「領域」を持っている場合は、一度にすべてのそれらをフックすることができます:

$('selector-for-all-the-areas').on('show.bs.collapse', onSectionClick); 

...そして、あなたはすることで、イベントに関連した1知っています要素thisonSectionClickを指します。

+0

ありがとう、これは本当に私は今、$( '#areacontainer')を持っています。on( 'show.bs.collapse'、onSubSectionClick);しかし、私がエリアをクリックすると、私は個々のエリアdivよりもareacontainerのIDを取得します – user2320239

+0

@ user2320239:はい、それはあなたが(効果的に)イベントをフックした要素であるためです。 '$("#areacontainer ")。on(" show.bs.collapse "、" selector-that-matches-the-subsection "、onSubSectionClick);これで' this 'イベントの後のセレクタと一致する要素。単純な例: '$(" div ")。on(" click "、" span "、function(){...});'ハンドラでは、 'this'はクリックされたdiv内のスパンを参照します。 –

関連する問題