如果你想让你的函数可以从全局范围访问并遵守 jQuery 约定,你应该将它附加到 jQuery 对象中。
(function ($) {
$._fnGetRowIDFromAttribute = function(row) {
return "foo";
}
$.fn.makeEditable = function (options) {
return this.each(function () {
//some code
});
};
})(jQuery);
或者你可以把它放在一个命名空间中:
(function ($) {
$.myModule = $.myModule || {};
$.myModule._fnGetRowIDFromAttribute = function(row) {
return "foo";
}
$.fn.makeEditable = function (options) {
return this.each(function () {
//some code
});
};
})(jQuery);
另一个说明:如果您的函数不使用 $.fn.makeEditable 范围内的任何内容,则没有理由在每次调用 $.fn.makeEditable 时重新定义它。您可以在用于指定 jQuery 插件的即时函数中定义它。
最后但并非最不重要的一点是,名称以下划线开头的变量或函数是一种传统的方式来说明它是私有的,不应该从外部调用。所以你应该考虑改变它的名字。