Javascript 从jQuery插件内部访问公共函数

Javascript 从jQuery插件内部访问公共函数,javascript,jquery,Javascript,Jquery,这是我第一次在没有教程的情况下编写jQuery插件。现在(2014年9月28日),jQuery站点不工作(我不知道为什么),所以我在那里找不到任何资源 下面是我报告错误的插件的一部分: $(function($){ $.fn.dialog = function(command, options) { var opts = $.extend( {}, $.fn.dialog.defaults, options ); //code $.fn.d

这是我第一次在没有教程的情况下编写jQuery插件。现在(2014年9月28日),jQuery站点不工作(我不知道为什么),所以我在那里找不到任何资源

下面是我报告错误的插件的一部分:

$(function($){
    $.fn.dialog = function(command, options) {
        var opts = $.extend( {}, $.fn.dialog.defaults, options );
        //code
        $.fn.dialog.handleCancel = function() {

        };
        $.fn.dialog.handleAccept = function() {

        };
        return this;
    };

    $.fn.dialog.defaults = {
        // some other props
        onCancel: $.fn.dialog.handleCancel(),
        onAccept: $.fn.dialog.handleAccept()
    };
    // code
}(jQuery));
当我调用插件(
$(“#dialog1”).dialog(/*..*/)
)时,浏览器控制台显示以下内容:

Uncaught TypeError: undefined is not a function
错误出现在“
onCancel:$.fn.dialog.handleCancel()”
的行中


我如何访问这些方法,它们应该在哪里?(我还希望他们能够访问
$(此)
您的
handleCancel
handleacept
函数在您调用
$.fn.dialog
函数之前不会初始化。因此,当您设置对话框默认值时,这些函数是未定义的

$.fn.dialog.defaults
之前插入此代码:

$.fn.dialog();

在调用
$.fn.dialog
函数之前,
handleCancel
handleacept
函数不会初始化。因此,在设置对话框默认值时,它们是未定义的

$.fn.dialog.defaults
之前插入此代码:

$.fn.dialog();

在调用
$.fn.dialog
函数之前,
handleCancel
handleacept
函数不会初始化。因此,在设置对话框默认值时,它们是未定义的

$.fn.dialog.defaults
之前插入此代码:

$.fn.dialog();

在调用
$.fn.dialog
函数之前,
handleCancel
handleacept
函数不会初始化。因此,在设置对话框默认值时,它们是未定义的

$.fn.dialog.defaults
之前插入此代码:

$.fn.dialog();

尝试在片段内重新排列块,添加过滤器,以防止默认情况下调用
handleCancel
handleacept
;例如

(函数($){
$.fn.dialog=函数(命令、选项){
var$el=此;
//访问,将参数传递给方法
$.fn.dialog.handleCancel=函数(c){
$el.html(c+“led”)
};
$.fn.dialog.handleAccept=函数(a){
$el.html(a+“ed”)
};
//调用'handleCancel'或'handleacept',
//基于`命令`
$.fn.dialog.defaults={
//其他一些道具
onCancel:command==“取消”
?$.fn.dialog.handleCancel(命令)
:null,
onAccept:command==“接受”
?$.fn.dialog.handleAccept(命令)
:null
};
var opts=$.extend({},$.fn.dialog.defaults,options);
//代码
归还这个;
};
//代码
}(jQuery));
$(“按钮”)。在(“单击”)上,函数(e){
$(“#结果”).dialog(e.target.id)
})

接受取消

结果:
尝试在片段内重新排列块,添加过滤器,以防止默认情况下调用
handleCancel
handleacept
;例如

(函数($){
$.fn.dialog=函数(命令、选项){
var$el=此;
//访问,将参数传递给方法
$.fn.dialog.handleCancel=函数(c){
$el.html(c+“led”)
};
$.fn.dialog.handleAccept=函数(a){
$el.html(a+“ed”)
};
//调用'handleCancel'或'handleacept',
//基于`命令`
$.fn.dialog.defaults={
//其他一些道具
onCancel:command==“取消”
?$.fn.dialog.handleCancel(命令)
:null,
onAccept:command==“接受”
?$.fn.dialog.handleAccept(命令)
:null
};
var opts=$.extend({},$.fn.dialog.defaults,options);
//代码
归还这个;
};
//代码
}(jQuery));
$(“按钮”)。在(“单击”)上,函数(e){
$(“#结果”).dialog(e.target.id)
})

接受取消

结果:
尝试在片段内重新排列块,添加过滤器,以防止默认情况下调用
handleCancel
handleacept
;例如

(函数($){
$.fn.dialog=函数(命令、选项){
var$el=此;
//访问,将参数传递给方法
$.fn.dialog.handleCancel=函数(c){
$el.html(c+“led”)
};
$.fn.dialog.handleAccept=函数(a){
$el.html(a+“ed”)
};
//调用'handleCancel'或'handleacept',
//基于`命令`
$.fn.dialog.defaults={
//其他一些道具
onCancel:command==“取消”
?$.fn.dialog.handleCancel(命令)
:null,
onAccept:command==“接受”
?$.fn.dialog.handleAccept(命令)
:null
};
var opts=$.extend({},$.fn.dialog.defaults,options);
//代码
归还这个;
};
//代码
}(jQuery));
$(“按钮”)。在(“单击”)上,函数(e){
$(“#结果”).dialog(e.target.id)
})

接受取消

结果:
尝试在片段内重新排列块,添加过滤器,以防止默认情况下调用
handleCancel
handleacept
;例如

(函数($){
$.fn.dialog=函数(命令、选项){
var$el=此;
//访问,将参数传递给方法
$.fn.dialog.handleCancel=函数(c){
$el.html(c+“led”)
};
$.fn.dialog.handleAccept=函数(a){
$el.html(a+“ed”)
};
//调用'handleCancel'或'handleacept',
//基于`命令`
$.fn.dialog.defaults={
//其他一些道具
onCancel:命令===