Ich benutze JQuery 1.12. Aus irgendeinem Grund ist ein Click-Handler zweimal gesetzt zu werden, obwohl ich das Click bin freibleibend, bevor es wieder einstellen ...Wie verhindere ich, dass mein Click-Handler zweimal gesetzt wird?
$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();
});
aber noch, wenn ich mein Menü klicken, um es zu öffnen, sehen Sie die „geöffnet“ Anweisung zweimal ausgedruckt. Siehe meine Geige - http://jsfiddle.net/6fjnnu55/1/. Weiß jemand, wie ich meinen Click-Handler richtig einstellen kann, damit ich ihn nicht zweimal setze?
HOw ist das ein Duplikat? THat empfiehlt, "this.unbind (" click ")" hinzuzufügen, was bereits die erste Zeile im von mir geposteten Code-Snippet ist. – Dave
Nein, es ist kein Duplikat. @Dave: fügen Sie 'console.log (e)' in Ihren Click-Handler ein - und sehen Sie, dass es tatsächlich verschiedene Ereignisse behandelt. Der letzte ist "natürlich" (vom Benutzer ausgelöst), alle anderen werden vom Skript selbst generiert. – raina77ow
Ja, das ist keine Täuschung, sondern basiert * ausschließlich * auf dieser Frage und nicht mit der externen jsFiddle, die Seiten und Seiten Code enthält, von denen niemand erwartet werden sollte, es zu lesen, sieht es so aus. Sie müssen lernen, wie man ein [mcve] erstellt. – DavidG