jquery事件被调用了两次-dropkick.js



所以我遇到了这个问题,我有一个下拉列表,然后我用dropkick.js创建它

问题

当我绑定一个像这样的更改事件时

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

警报被调用两次。

在这里摆弄

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

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

  • 最初的html/脚本在这里就像这个小提琴一样,它创建了两个下拉菜单(尽管它们似乎没有关联)我用代码<select>...</select>创建的一个和dropkick.js用class=dk_container dk_theme_default类创建的那个。所以我评论了这个html以避免这种情况(第一次),但它似乎仍然存在2个选择下拉列表

我想我发现了问题:

在你的dropkick.js插件中,你已经触发了两次select。在插件中搜索这些行

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

评论这里的第一行

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

试试看。"警报被调用两次。"这将被修复。

您可能只需要使用dropkick的API文档。

$(function () {
    $('.default').dropkick({
        change: function () {
            alert("You selected " + $(this).val() + " for " + this.id + ".");
        }
    });
});

最新更新