Собственный плагин jQuery, проблема с областью видимости - PullRequest
0 голосов
/ 06 апреля 2011

Я хочу создать плагин, который предназначен для работы с простыми объектами - я могу повторять, используя каждый из них. Таким образом, я хочу быть доступным через глобальный объект jQuery, как $ .myPluginFn ().

(function($) { $.fn.test = function() { return 1; } })(jQuery)

Выполнение $ j.test () выдает ошибку:

TypeError: Object function (a,b){return new d.fn.init(a,b,g)} has no method 'test'

Что я делаю не так? Присвоение $ .fn.myPluginFn работает с другой стороны.

Ответы [ 2 ]

2 голосов
/ 06 апреля 2011

Если я вас правильно понимаю и вы хотите, чтобы jQuery.test() работал, вы должны использовать:

$.test = ...

вместо

$.fn.test = ...

Последнее - то, что вы использовали бы, еслихотел jQuery(selector).test() на работу.

1 голос
/ 06 апреля 2011

функция .fn.foo предоставляет функцию foo каждому объекту jQuery.Так что если вы создаете его, вы можете назвать его так: $("#id_of_item").foo();

вам это полезно, если вы хотите манипулировать элементами.

, но если вы хотите создавать другие функции, вам не нужноположить в объект jquery.

...