5

簡単なjQueryプラグインを作成しましたが、次のようなことができるように、より高度なプラグインを作成したいと思います。

$.myplugin.close();
$.myplugin.open();
$.myplugin.next();
$.myplugin.prev();

このように呼び出すことができるプラグインを作成するにはどうすればよいですか?

- - - - - - - - - - - - -更新しました - - - - - - - - - - - - -

@Craig MacGregorに感謝します、ありがとう。

ただし、関数を呼び出すには、次のようにする必要があります

$(this).myplugin.load();
4

2 に答える 2

3

次のように、オブジェクトを「myplugin」に割り当てることができます。

$.myplugin = {
  close: function(){ 
      //code
  },
  open: function(){
      //code
  },
  next: function(){
      //code
  },

  prev: function(){
      //code
  }
};
于 2012-10-12T04:50:49.043 に答える
2

ほんの一例:

(funciton($) {
  var methods = {
    init: function() {},
    close: function() {},
    open: function() {},
    prev: function() {},
    next: function() {},
  };

  $.fn.myplugin = function (method) {
    if (methods[method]) {
      return methods[method].apply(this, [].slice.call(arguments, 1));
    } else if (typeof method == 'object' || !method) {
      return methods.init.apply(this, arguments);
    } else {
      $.error( 'Method ' +  method + ' does not exist on myplugin' );
    }      
  };

}(jQuery));

//usage
$(selector).myplugin();

// call methods
$(selector).myplugin('close');
$(selector).myplugin('open');
$(selector).myplugin('next');
$(selector).myplugin('prev');
于 2012-10-12T06:39:31.763 に答える