2012-06-12 6 views
7

パラメータを使用して関数外でトリガーしたいクリック機能があります。それが実際にクリックされたとして、私はIDとdiv要素のコンテキストで渡す方法パラメータを使用してクリックイベントをトリガーする

<div id="menubar"> 
    <a id="menu_file_open">File Open</a> 
    <a id="menu_file_save">Save File</a> 
</div> 


$("#menubar a").click(function(event){ 

    var menu_item = $(this).attr('id'); 
    var $context = $(this); 

    switch(menu_item){ 

     case 'menu_file_open': 
      //Do menu file open dialog 
     break; 

     case 'menu_file_save': break; 

    } 

}); 

$('#menubar a').trigger('click'); //not working (ID,context not defined); 

+5

リンクはIDを持ち、コンテキストはリンク要素でなければなりません。ちょうどヒント: '$( 'menubar a')を' .trigger'の代わりに '(' menubar a ')にするだけです。 –

+2

また、クリックハンドラをトリガーするのではなく、特定のアンカー要素にフィルターをかけたいかもしれませんあなたが当然しようとしていることに応じて、それらのすべてをすぐに。 –

+1

作品:http://jsfiddle.net/fbkxk/。 jQueryは正しくロードされていますか? – FishBasketGordo

答えて

6

それは私の作品:

<div id="menubar"> 
    <a id="click_me" href="#">Click me</a> 
    <a id="dont_click" href="#">Don't click</a> 
</div> 

$("#menubar a").click(function(event){ 
    var menu_item = $(this).attr('id'); 
    var $context = $(this); 

    //.... 
}); 

$('#menubar a#click_me').click();​ // or $('#menubar a#dont_click').trigger('click'); 
+1

'click()'を呼び出すと、 'trigger( 'click' ) ' – FishBasketGordo

+0

あなたは正しいです!私はいつも 'click()'を使いました:p。 ヒントにしたがって投稿を更新します! – user278064

+0

@CezarisLT:まだ 'コンテキストが定義されていません 'という問題はありますか?これは 'JQuery'ライブラリに問題がある可能性があるからです。 – user278064

4

あなたがそうのように、jQueryのイベントハンドラにarbitrary dataを渡すと取得できます。

$(selector).click({ dataItem1: 'value1', dataItem2: 'value2' }, function(e) { 
    var val1 = e.data.dataItem1, 
     val2 = e.data.dataItem2; 
}); 

しかし、あなたのコードがworking hereですので、私はそれが疑われます別の問題かもしれません.jQueryライブラリがロードされていないか、スクリプトにどこかにエラーがあります。

関連する問題