2012-03-22 2 views
1

Я использую Jeremy Huets notify-plugin (https://github.com/jhuet/jquery-notify) для отображения ошибок.jQuery: Как использовать jQuery-плагин в функции получения jquery-sortable

Если я использую плагин в функции ошибки ajax-request, я получаю $.notify is not a function.

Если я использую плагин вне функции ajax, он работает.

$.notify('error occured', 'error');  //works 

$.get("http://my.url", 
    function() { 
     //do something 
}).error(function() { 
    //handle error 
    $.notify('error occured', 'error'); //fails 
}); 

Другие функции jQuery работают внутри функции ошибки. Как я могу заставить плагин работать внутри функции ошибки?

Я думаю, что все плагины не работают внутри функции ошибки.

Благодарим за помощь!

EDIT:

К сожалению, я обнаружил, что не ошибка-функция вызывает проблему. Это jquery-sortable. Код на самом деле примерно такой:

$.notify('error occured', 'error');  //works 

$(".container").sortable({ 
    receive:function (event, ui) { 
     //handle error 
     $.notify('error occured', 'error'); //fails 
    }); 
}); 
+1

Урр, этого не должно быть. Вы уверены, что вы не повторно объявляете '' 'внутри функции' error() 'случайно? Что делает 'alert (typeof jQuery)' и 'alert (typeof $)' давать вам, когда выполняется в обработчике 'error'? – Matt

+0

Он возвращает 'функцию', как ожидалось. Я могу получить доступ ко всем функциям jQuery по умолчанию внутри функции ошибки, используя тот же синтаксис. Если это 'notify = $ .notify;' ouside функцию, я могу вызвать ее внутри, используя 'notify()'. На данный момент это решение работает. – flec

ответ

1

Проблема в том, что JQuery был случайно включен в два раза один раз перед включением JQ-уведомления и сразу после. Это вызвало переопределение $ вторым включением. Поэтому $.notify стал undefined. Присвоение его отдельной переменной разрешало проблему временно, но правильное решение, конечно, включало jQuery только один раз.

0

Уведомление - это полностью отдельная библиотека от Waypoints (!!), я это сам осознал. Вы должны были уведомлять включены, наряду ш JQuery:

http://notifyjs.com/