간단한 jquery 플러그인 내에서 함수를 호출하려고합니다. init 메소드가 너비에 30을 더하지만 add50 메소드는 오류 Uncaught TypeError: Object [object Object] has no method 'add50'
을 던졌습니다. 이 오류의 원인을 확인하지 못합니다.간단한 jquery 플러그인 내에서 함수를 호출 할 수 없습니다.
jsfiddle : http://jsfiddle.net/nsshrinivasan/KnDMq/6/
;(function ($, window, document, undefined) {
// Create the defaults once
var pluginName = 'Extender',
defaults = {
propertyName: "value"
};
// The actual plugin constructor
function Plugin(element, options) {
this.element = element;
this.options = $.extend({}, defaults, options) ;
this._defaults = defaults;
this._name = pluginName;
this.init(this.element);
}
Plugin.prototype = {
init : function (element) {
// console.log($(this.element).width());
$(element).width($(element).width() + 30);
},
add50 : function(element){
$(element).width($(element).width() + 50);
}
};
$.fn[pluginName] = function (options) {
return this.each(function() {
if (!$.data(this, 'plugin_' + pluginName)) {
$.data(this, 'plugin_' + pluginName,
new Plugin(this, options));
}
});
}
})(jQuery, window, document);
$('#metal').Extender().add50();
HTML :
<div id='metal'></div>
CSS :이 같은
#metal{
width: 50px;
height: 10px;
background:red;
}
당신이 돌아 Fiddle''$ .fn.plugin'에서 this'는 선택 withing에 eleemts이다 아닌 함수 자체. 플러그인 제작과 관련하여 많은 리소스가 있습니다. 예를 들어 jQueryy 문서 메인 메뉴에서. Google에서 검색 ... 많은 자습서 – charlietfl