我正在使用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/。有谁知道我如何正确设置我的点击处理程序,以便我不设置它两次?
答案 0 :(得分:2)
问题似乎在第35-36行:
}).focus(function() {
$(this).find('.select-styled').click()
似乎"焦点"你点击选择小部件......我猜你要么不想一直点击焦点 ,要么甚至根本没有...
<强>更新强>
所以看一下我认为不会真正有用的事件,因为你需要区分你有一个事件的情况和两个被触发的事件......我为此使用了一个标志变量,见我更新的小提琴,特别是第30,39和75行
http://jsfiddle.net/6fjnnu55/3/
希望这有帮助!