插件未在jQuery中调用
我正在开发一个插件。但当我调用插件时,它会说方法未定义插件未在jQuery中调用,jquery,jquery-plugins,Jquery,Jquery Plugins,我正在开发一个插件。但当我调用插件时,它会说方法未定义 ;(function($){ $.dialog = { defaults : { ... } //end of defaults }; //end of $.dialog = {} $.fn.extend({ dialog : function(userConfig) { var config = (user
;(function($){
$.dialog = {
defaults : {
...
} //end of defaults
}; //end of $.dialog = {}
$.fn.extend({
dialog : function(userConfig) {
var config = (userConfig) ?$.extend({}, $.dialog.defaults, userConfig)
: $.dialog.defaults;
config.selector = "#" + this.attr("id");
$.dialog.createUI(config);
return this;
} //end of function(userConfig)
}); //end of $.fn.extend({})
..
})(jQuery);
我这样称呼它
$(document).ready(function(){
$.dialog();
}); //end of $(document).ready(fn)
对话框不是一个函数。我做错了什么
谢谢我想你应该用
$.extend()
而不是
$.fn.extend()
如果你想调用你的插件
$.dialog();
而不是
$('yourselector').dialog();
是否要对元素选择调用
dialog()
方法?e、 g
$("dialogContainer").dialog();
不,我不想像您那样在元素选择器上完成所有操作。
$(“dialogContainer”).dialog()代码>。我想像$.dialog()那样调用它
或$对话框({})代码>。有趣的方法。这意味着,如果你想在一个页面上有几个对话框,你必须调用$.dialog({selector:“dialog1”});$。dialog({selector:“dialog2”})等,而不只是调用$(“.dialogs”).dialog();您也不能使用类名,因为dialog()方法强制使用ID选择器。顺便说一句,您在哪里有这个.attr(“id”),它实际上指向什么?因为它不是元素,因此没有id属性。我不是说这是错的,只是有趣而已。你采取这种方法有什么特别的原因吗?:)我正在写我的第一个插件。是的,不需要config.selector=“#”+this.attr(“id”)代码>在这种情况下。因为这是我的第一个插件,所以很明显我会犯错误:)。实际上我第一次读到一个插件,在那个插件中他使用了$.fn。这就是我使用它的原因:)。但至少我知道了这两者之间的区别,你也告诉我一件事,我可以用这种方法创建多个对话框:)。谢谢,想到我的第一个插件一定是什么样子,我不寒而栗;)$。plugin_name当然有它的用途,我倾向于在每次加载时将其保留在页面上,并在需要对特定元素进行填充时使用$.fn.plugin_name。您的意思是,当我想调用选择器时,我应该使用$.fn.extend()
,但如果我只想调用它,那么就不需要使用$.fn。