2

jQuery UI アコーディオンのドキュメントには、アコーディオン ボタンの 1 つのタイトルとコンテンツになる h3 と div の組み合わせの複数のバリエーションの例が示されています。

私のページには、すべての h3 の ID があり、誰かがアコーディオン ボタンの 1 つをクリックしたときにプログラムでアクセスしたいと考えています。私が目にする最も明白なアプローチは、h3 にクリック リスナーを登録し、イベント ターゲットにアクセスして、おそらくアコーディオン呼び出しの後に HTML ID を取得することです。しかし、その解決策が正しいかどうかについては、少しわかりません。

ユーザーがクリックしたアコーディオン ボタンを作成するために使用された h3 の HTML ID をイベント ハンドラーに通知させるには、どのような方法が望ましいでしょうか?

4

2 に答える 2

2

アコーディオンを作成するときは、単に activate-event のイベント ハンドラーを渡すことができます。このイベントは、パネルがアクティブ化された後 (アニメーションの完了後) にトリガーされます。http://api.jqueryui.com/accordion/を参照してください。

あなたはこのようなことをすることができます

$( ".selector" ).accordion({
activate: function( event, ui ) {
 if(!ui.newHeader.isEmptyObject()){
  alert(ui.newHeader.attr('id'))
 }
}
});
于 2013-04-20T13:56:20.663 に答える
1

これidにより、クリックh3された要素の が変数に割り当てられます。onの代わりに使用するため、これは動的コンテンツも考慮する必要がありますclick

$("h3").on("click", function(){
     var id = $(this).attr("id");
});

ただし、動的コンテンツでうまくいかない場合は、次のような方法を試してみてください。

$("body").on("click", "h3", function(){
     var id = $(this).attr("id");
});
于 2013-04-20T13:55:28.430 に答える