2013-02-10 2 views
0

У меня есть это в JS файл:объект не имеет метод (JQuery)

$(document).ready(function(e){ 
    jQuery.fn.SaveAdd = function(titulo,contenido,tags) { 
     // code 
    } 
}); 

И я импортировал JS к HTML-документу, и я назвал функцию:

$(document).ready(function(){ 
    $("#iSave").click(function(){ 
     // declaration of vars instead of this line 
     $(this).SaveAdd(title,content,tags);  
    }); 
}); 

и I имеют ошибку: не имеет метода SaveAdd. НО, когда и использовать это:

$(document).ready(function(){ 
     // declaration of vars instead of this line 
     $(this).SaveAdd(title,content,tags);  
}); 

Функция работает правильно: S я не знаю, что это неправильно ...

+0

Вы пытаетесь создать плагин jquery? –

+0

Вы определяете плагин, когда DOM готов. Вы должны прочитать о создании плагина здесь> http://docs.jquery.com/Plugins/Authoring – BenM

ответ

1

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

(function($) { 

    $.fn.SaveAdd = function(titulo,contenido,tags) { 
     //your great code 
    }; 

})(jQuery); 

я здесь образец для вас

(function($) { 
    $.fn.SaveAdd = function(titulo, contenido, tags) { 
     alert(titulo); 
     alert(contenido); 
     alert(tags); 
    }; 
})(jQuery); 

$(document).ready(function() { 
    $("#iSave").click(function() { 
     $(this).SaveAdd("hehe", "hahha", "hohoo"); 
    }); 
}); 

Посмотрите, как это работает здесь http://jsfiddle.net/K4Tfg/

есть читать об этом, и это, безусловно, решить вашу проблему: http://docs.jquery.com/Plugins/Authoring

+0

ну ... im new в jQuery, им не достаточно, чтобы создать плагин, (не 2day), я прочитал, как делать функции и использовать их ... я сделал еще одну функцию, которую я использовал на другой странице и работал, но я тестировал ту же функцию для этой страницы и имел ту же ошибку. –

+0

извините, не работает, имеет ту же проблему: S –

+0

@ user2038286 мы можем знать, с какой ошибкой вы сталкиваетесь? –

3

Плагины не должны быть завернуты в document.ready обработчик - который будет отложить добавление функция jQuery до слишком позднего времени. Нормальная картина:

(function($) { 

    $.fn.SaveAdd = function(...) { 
     ... 
    }; 

})(jQuery); 

Вы не имеют использовать $ в качестве псевдонима JQuery внутри модуля плагина, но это обычная условность.

EDIT Я вижу, что ваша реальная проблема, как представляется, использование библиотеки (Aloha), который загружает свою собственную версию JQuery динамически (с помощью requirejs) и не экспортировать его в обычном порядке. Как упоминалось в комментариях, вот почему ваше сообщение об ошибке сообщило о проблемах с [object Object] - явным признаком того, что $(...) не возвращал объект jQuery.

Для получения дополнительных сведений о том, как разрешить эти конфликты, см. http://aloha-editor.org/guides/dependencies.html.

+0

Я собираюсь попробовать этот путь, спасибо за ответ, плохо скажите, что произошло за 5 минут –

+0

Обновление: я использовал этот синтаксис, чтобы сделать функцию , я назвал функцию, подобную i, поставленной в 1-м столбце, и не работает, такая же ошибка: S –

+0

@ user2038286 какая ошибка? – Alnitak

Смежные вопросы