2013-08-23 34 views
0

UPDATE:这是控制台中的错误。Jquery Mixitup插件帮助防止处理程序被破坏

未捕获的异常:为选择二没有定义的查询功能未定义

我使用此代码,允许用户添加标签的图像。一切正常。我遇到的问题是图像排序时(使用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插件毁坏处理程序,它说,使用 “委托()”。 我尝试了各种不同的代码/组合,但没有运气。这里是最后一次尝试

$('#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(" ")); 
    } 
}); 

}); 

回答

1

啥子我知道的是,mixitup排序功能destroies的元素,以便所有绑定事件这些要素将丢失。

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

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

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

所以就像我说的只是绑定click事件到另一个父元素像body

$("body").on("click",'a.clickable' ,function(){//....}); // tested it good solution.