0

更新:这是控制台中的错误。

未捕获的异常:未为 Select2 定义的查询函数未定义

我正在使用此代码允许用户向图像添加标签。一切正常。我遇到的问题是图像排序时(使用 mixitup.io 插件)。在排序之前,脚本可以完美运行(弹出、编辑、保存、数据库更新)。用户单击几个排序按钮后,脚本停止响应并且不会触发弹出窗口。

请在下面查看并帮助我找到问题所在。谢谢 :)

工作代码:

$('.tags').editable({

    placement: 'top',
    select2: {
        tags: ['cookies', 'pie','cake'],
        tokenSeparators: [","]
    },
    display: function(value) {
        $.each(value,function(i){
           value[i] = "<span class='tagBox'>" + $('<p>' + value[i] + '</p>').text() + "</span>";
        });
        $(this).html(value.join(" "));
    }
});

为了防止 mixitup.io 插件破坏处理程序,它说使用“​​delegate()”。我尝试了各种不同的代码/组合,但没有运气。这是最后一次尝试

$('#content').delegate( ".tags", "click", function() {


$('.tags').editable({

    placement: 'top',
    select2: {
        tags: ['cookies', 'pie','cake'],
        tokenSeparators: [","]
    },
    display: function(value) {
        $.each(value,function(i){
           value[i] = "<span class='tagBox'>" + $('<p>' + value[i] + '</p>').text() + "</span>";
        });
        $(this).html(value.join(" "));
    }
});

});
4

1 回答 1

1

我知道的是 mixitup 排序函数会破坏元素,因此与这些元素绑定的所有事件都将丢失。

快速解决方案是:不要将事件绑定到这些元素!

例如,您的项目中有一个链接,其中包含绑定click事件。

$("a.clickable").on("click",function(){//....});

所以正如我所说,只需将点击事件绑定到另一个父元素,例如body

$("body").on("click",'a.clickable' ,function(){//....}); // tested it good solution.
于 2013-11-02T11:24:09.023 回答