2013-08-23 3 views
0

UPDATE: Это ошибка в консоли.Плагин Jquery Mixitup помогает предотвратить уничтожение обработчиков

неперехваченная исключения: функция запрос не определен для выбор2 неопределенных

Я использую этот код, чтобы позволить пользователям добавлять теги к изображениям. Все работает нормально. Проблема, с которой я сталкиваюсь, заключается в сортировке изображений (с использованием плагина mixitup.io). Перед сортировкой сценарий работает отлично (всплывающее, редактирование, сохранение, обновление db). После того, как пользователь нажмет несколько кнопок сортировки, сценарий перестает отвечать на запросы, и всплывающее окно не будет срабатывать.

Пожалуйста, посмотрите ниже и помогите мне найти, где проблема. Спасибо :)

Рабочий код:

$('.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

WAHT Я знаю, что mixitup функция сортировки destroies элемент, так что все переплетены события к тем элементам будут потеряны.

быстрое решение: не связывайте события с этими элементами!

например, у вас есть ссылка в ваших товарах со связанным click событиями на них.

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

так, как я сказал, просто привязать событие щелчка к другому родительскому элементу, как body:

$("body").on("click",'a.clickable' ,function(){//....}); // tested it good solution. 
Смежные вопросы