0

正常に動作する関数を作成しましたが、同じクラスの複数のhtmlブロックで再利用しようとすると、機能しなくなります。.next()and.closest()メソッドを使用しようとしましたが、結果がありません。これらはどこに適用しますか?この機能は、<select>ドロップダウンを再作成することですが、順序付けされていないリストを使用します。

クラスと関数は、リストがCMSによって生成され、1ページに複数回存在する可能性があるため、同じままであることが重要です。そのため、コードを変更して各関数を個別に呼び出すソリューションを用意するのは適切ではありません。

デモ

ドロップダウンは正常に機能します(関数は1つの順序付けられていないリストで正常に機能します)

ドロップダウンブレーク(関数とHTMLコードを再利用する場合)

4

2 に答える 2

3

スクリプトには、変更が必要なものがいくつかありました。これは、あなたが何をしようとしていたかを私が理解できる限り、うまくいくはずです。

主なポイントはこれです:

$(".cloned").click(function(){
    $('.options').toggle();
    e.preventDefault();                 
});

$('.options')ハンドラー内のセレクターは、ドキュメント内のどこをクリックしたかに関係なく、クラスを持つすべての要素を選択します。optionsそのため、すべてのドロップダウンがクリックでアクティブになりました。

クリックする特定の.options要素のみを選択する必要があります。これを行うには多くの方法がありますが、これは私がしたことです。

$(this).next('.options').toggle();
于 2013-01-25T08:39:18.220 に答える
1

これはもっと良いかもしれません..このフィドルをチェックしてください

を使用してtoggleClass()

フィドル

于 2013-01-25T08:56:56.617 に答える