2013-07-15 72 views
0

我需要編寫一個可以用於類似於此的插件:這不是真的我會用它,但這是我的測試的開始,以獲得充分的理解。jquery插件獲取和設置消息

HTML:

<div id="div"></div> 

的Javascript:

var plugin = $('#div').plugin(); 

plugin.message.set('hi'); 
alert(plugin.message.get()); 

什麼,我缺少的是創造的元素有關的插件的一個實例,並用它來獲取和設置屬性的能力:

我假設我的設置有點像下面,有人可以填補空白嗎?我不知道如何調用,例如,如何通過傳遞參數的方法「GET」 ......

$.fn.plugin = function() { 
    var target = this; 

    methods: { 

     var message = { 
      get: function() { 
       return $(target).text(); 
      }, 
      set: function() { 
       $(target).text(message); 
      }, 
     }; 

    }; 

}; 

回答

2

這是一個jQuery插件的常用基本骨架:

(function($) 
{ 
    var parameters = 
    { 
     myDefault: "default" 
    }; 

    var methods = { 
     init : function(options) { 
      return this.each(function() { 
       parameters = $.extend(parameters, options); 
      }); 
     }, 
     myMethod: function(){} 
    }; 

    $.fn.myPlugin = function(methodOrOptions) { 
     if (methods[methodOrOptions]) { 
      return methods[ methodOrOptions ].apply(this, Array.prototype.slice.call(arguments, 1)); 
     } else if (typeof methodOrOptions === 'object' || ! methodOrOptions) { 
      // Default to "init" 
      return methods.init.apply(this, arguments); 
     } else { 
      $.error('Method ' + method + ' does not exist on jQuery.myPlugin'); 
     }  
    }; 

})(jQuery); 

使用這種方式:

初始化

$('#myDiv').myPlugin({ 
    myDefault: "override" 
}); 

釷將調用init方法,在這種情況下會更改默認參數。

調用的方法

$('#myDiv').myPlugin('myMethod'); 

查看更多在這裏:http://learn.jquery.com/plugins/basic-plugin-creation/