Я створюю плагін jQuery, в якому один із методів, який я хотів би писати, не буде приймати аргумент селектора і не повинен передавати елемент. Я хотів би, щоб це було доступно за допомогою дзвінка, як $.myMethod()
як вбудований $.ajax()
метод. До цього часу я пробував щось на зразок
$.fn.myMethod(options) {
console.log("I"ve been called");
}
Це працює, коли я намагаюся $(".a_selector").myMethod()
але не тоді, коли я намагаюся $.myMethod()
.
Чи можна це зробити за допомогою плагіна jQuery, чи він доступний лише для внутрішніх функцій.
Мета цього методу - виконатидія з деякими даними, які зберігаються в jQuery.data. Я усвідомлюю, що вони jQuery.data пов'язані з елементом, але в цьому випадку я жорстко закодував його в елемент body, щоб полегшити ситуацію для кінцевого користувача.
Відповіді:
2 для відповіді № 1Функції, які є членами $.fn
застосовувати до об'єктів jQuery, а не до $
сам об’єкт. Якщо ви хочете створити такий метод, вам потрібно лише написати:
$.yourMethod = function() {
// Do something.
};
Тепер ви можете викликати його без об’єкта jQuery:
$.yourMethod();
0 для відповіді № 2
Це може бути складний спосіб оголошення такої функції
$.extend({myMethodA:function(){
//Do something
},
myMethodB:function(){
//Do something else
}
});