Мне нужен результат:
добытчик
$('selector').myplugin().val();
сеттер
$('selector').myplugin().val('value');
и я не хочу, чтобы результат был следующим:
$('selector').myplugin({ value: 'value' });
или
$('selector').myplugin('setValue', 'value');
начните определять плагин:
(function ($) {
$.fn.myplugin= function () {
return this.each(function () {
var $this = $(this);
...
});
};
}(jQuery));
этот вопрос - Как создать плагин jQuery с помощью методов? нет помощи..
Этот код плагина устанавливает и получает значение в плагине jQuery.
;(function($) {
var myValue;
$.myplugin = {
myValue: function(value) {
if (typeof(value) != "undefined") {
myValue = value;
} else {
return myValue;
}
}
}
})(jQuery);
jQuery.myplugin.myValue("test");
alert($.myplugin.myValue());
jQuery.myplugin.myValue(10);
alert($.myplugin.myValue());
Сценарий: http://jsfiddle.net/ypE28/
myValue
. Это может быть намерением здесь, но обычно это не так. Вы должны охватить переменную.
val()
в этом случае сбивает с толку, и вы не должны пытаться переписать поведение jquery imo. Связанный вопрос правильный, и почти все плагины, которые я видел, работают таким образом.$('selector').myplugin();
И затем установите / получите значение следующим образом -$('selector').val();
/$('selector').val("value");
..