2013-08-23 81 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.