私はJQuery 1.12を使用しています。何らかの理由でクリックハンドラは...私は再びそれを設定する前に、クリックのバインドを解除してるにもかかわらず、二回クリックハンドラーが2回設定されないようにするにはどうすればよいですか?
$styledSelect.unbind('click')
console.log("setting click")
$styledSelect.click(function(e) {
console.log("opened");
e.stopPropagation();
$('div.select-styled.active').each(function() {
$(this).removeClass('active').next('ul.select-options').hide();
});
$(this).toggleClass('active').next('ul.select-options').toggle();
});
を設定きているが、まだ私はそれを開くために私のメニューをクリックしたとき、あなたは「開かれた」を参照してください。声明は2回印刷されました。私のフィドル - http://jsfiddle.net/6fjnnu55/1/を見てください。誰も私はそれを2回設定しないように私のクリックハンドラを適切に設定する方法を知っていますか?
これは重複ですか?答えは "this.unbind(" click ")"を追加することをお勧めします。これはすでに私が投稿したコードスニペットの最初の行です。 – Dave
いいえ、重複していません。 @Dave:あなたのクリックハンドラに 'console.log(e)'を追加し、実際に別のイベントを処理することを確認してください。最後のものは(自然に)(ユーザーがトリガーした)もので、他のすべてはスクリプト自体によって生成されます。 – raina77ow
はい、そういうわけではありませんが、この質問にのみ基づいており、誰も読んではいけないページやページを含む外部のjsFiddleを使用していないので、それはそうです。あなたは[mcve]を作る方法を学ぶ必要があります。 – DavidG