Я использую JQuery 1.12. По какой-то причине обработчик щелчка становится установлен в два раза, несмотря на то, что я отменяя щелчок перед установкой его снова ...Как предотвратить двойной настройку обработчика кликов?
$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();
});
, но все же, когда я нажимаю мое меню, чтобы открыть его, вы видите «открыт» заявление напечатано дважды. Смотрите мою скрипку - http://jsfiddle.net/6fjnnu55/1/. Кто-нибудь знает, как я могу правильно настроить мой обработчик кликов, чтобы не устанавливать его дважды?
HOw это дубликат? Этот ответ рекомендует добавить «this.unbind (« click »)», который уже является первой строкой в фрагменте кода, который я опубликовал. – Dave
Нет, это не дубликат. @Dave: добавьте 'console.log (e)' в ваш обработчик кликов и посмотрите, что он фактически обрабатывает разные события. Последний является «естественным» (пользовательским), все остальные генерируются самим скриптом. – raina77ow
Да, это не обман, но основанный * исключительно * на этом вопросе и не используемый внешний jsFiddle, который содержит страницы и страницы кода, которые никто не должен ожидать читать, это выглядит так. Вам нужно научиться делать [mcve]. – DavidG