Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
插件未在jQuery中调用_Jquery_Jquery Plugins - Fatal编程技术网

插件未在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。