Javascript 我如何调用插件中的这个函数?
我正在使用一个插件,其代码大致如下:Javascript 我如何调用插件中的这个函数?,javascript,jquery,plugins,Javascript,Jquery,Plugins,我正在使用一个插件,其代码大致如下: (function ($) { $.fn.makeEditable = function (options) { function _fnGetRowIDFromAttribute(row) { return "foo"; } return this.each(function () { //some code }); };
(function ($) {
$.fn.makeEditable = function (options) {
function _fnGetRowIDFromAttribute(row) {
return "foo";
}
return this.each(function () {
//some code
});
};
})(jQuery);
如何从外部插件(即在我的页面上)调用
\u fGetRowIDFromAttribute
?如果要从外部访问,需要替换此行:
function _fnGetRowIDFromAttribute(row) {
_fnGetRowIDFromAttribute = function(row) {
这一行:
function _fnGetRowIDFromAttribute(row) {
_fnGetRowIDFromAttribute = function(row) {
这将在全局范围内添加函数;您还可以在模块块外部定义函数。如果您想从外部访问该函数,则需要替换此行:
function _fnGetRowIDFromAttribute(row) {
_fnGetRowIDFromAttribute = function(row) {
这一行:
function _fnGetRowIDFromAttribute(row) {
_fnGetRowIDFromAttribute = function(row) {
这将在全局范围内添加函数;您还可以在模块块之外定义函数。如果您希望从全局范围访问函数并遵守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插件的即时函数中定义它
最后但并非最不重要的一点是,一个名为的变量或函数以下划线开头,这是一种常规的方式,用来判断它是私有的,不应从外部调用。因此,您应该考虑更改它的名称。< P>如果您想让您的函数从全局范围访问并尊重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插件的即时函数中定义它
最后但并非最不重要的一点是,一个名为的变量或函数以下划线开头,这是一种常规的方式,用来判断它是私有的,不应从外部调用。所以你应该考虑改变它的名称。你不能,这就是使它成为插件的一部分——它是封装的,而不是函数的公共返回值的一部分。那么有什么解决办法吗?我有插件代码。如何使其成为公共调用的一部分?在全局范围内复制该函数。复制粘贴作业。你不能,这就是让它成为插件的一部分的目的——它是封装的,而不是函数的公共返回值的一部分。那么有什么解决方法吗?我有插件代码。如何使其成为公共调用的一部分?在全局范围内复制该函数。复制粘贴作业。