#jquery
#jquery
Вопрос:
Я пишу плагин jquery, и он работает хорошо, но для него нужна внешняя-> внешняя оболочка #id (#somediv), т.е.:
$('#somediv').foo({
wrap : 'example',
one : 'red',
two : 'blue',
});
HTML:
<div id="somediv">
<<div id="example">
<!-- Do stuff -->
</div>
</div>
для меня внешняя-> внешняя оболочка (#somediv) не нужна, и я хотел бы иметь возможность устранить необходимость в этом и просто иметь одну оболочку, которая на самом деле является wrap : 'example',
опцией, и вызывать параметры плагина следующим образом:
$.foo({
wrap : 'example',
one : 'red',
two : 'blue',
});
HTML:
<div id="example">
<!-- Do stuff -->
</div>
итак, как сказано в названии, как я могу изменить change $('#somediv').foo
на $.foo
?
Базовая компоновка плагина:
;(function($) {
$.fn.foo = function(opts) {
var defaults = {
wrap : 'example',
one : 'red',
two : 'blue'
};
var opts = $.extend(defaults, opts);
return this.each(function() {
// Do stuff
});
};
})(jQuery);
Как обычно, вся помощь приветствуется и заранее благодарна.
Ответ №1:
Вместо того, чтобы назначать его для jQuery.fn
назначения прямо jQuery
.
Вы также можете использовать extend()
like …
$.extend({
foo: function() { ... }
});
Комментарии:
1. Не совсем уверен, как tbh, я добавил базовый макет плагина, который я использую, чтобы вы могли видеть, что у меня есть на данный момент.