所以我有一个问题,我有一个下拉列表,然后使用dropkick.js创建它。 (我只是在学习dropkick.js,所以现在我想我误会了。)

问题

当我像这样绑定on change事件时

$('.pizza_size').on('change', 'select[name=pizza_size]', function() {
    alert(this.value);
});


该警报被调用两次。

Fiddle here

我最初的问题是选择下拉列表是动态更改的,因此$(".default").dropkick();不再适用,因此我在上面创建了此动态选择器。 (如果有比这更好的动态绑定呼叫的方法,请告诉!:D)

有用的信息:(基于我的一些调试)


最初的html / script就像这样的fiddle here,它在其中创建了两个下拉菜单(尽管它们似乎没有关联),一个是我用代码<select>...</select>创建的,另一个是dropkick.js是通过class=dk_container dk_theme_default类创建的。所以我评论了这个html以避免这种情况(首先是小提琴),但是它似乎仍然存在2 select下拉菜单!

最佳答案

我想我发现了问题:

在dropkick.js插件中,您选择触发了两次。
在您的插件中搜索这些行

$select.trigger('change');
$select.val(value).trigger('change');


在此处评论第一行

$select.trigger('change'); // comment this line in your dropkick.js file


试一下“警报被两次调用。”这将得到解决。

09-25 20:07