создать плагин JQuery со значением getter / setter

0

Мне нужен результат:

добытчик

$('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 с помощью методов? нет помощи..

  • 0
    Использование вами val() в этом случае сбивает с толку, и вы не должны пытаться переписать поведение jquery imo. Связанный вопрос правильный, и почти все плагины, которые я видел, работают таким образом.
  • 1
    @jammykam спасибо. Я думаю, что я должен определить плагин - $('selector').myplugin(); И затем установите / получите значение следующим образом - $('selector').val(); / $('selector').val("value"); ..
Теги:
jquery-plugins

1 ответ

0
Лучший ответ

Этот код плагина устанавливает и получает значение в плагине 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/

  • 0
    Это хорошее решение. Мой вопрос был неверным.
  • 0
    Несколько экземпляров вашего плагина будут использовать свойство myValue . Это может быть намерением здесь, но обычно это не так. Вы должны охватить переменную.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню