我有一些 jQuery 代码:
$(function(){
function someFunc(){
/*do something*/
};
.............
});
现在我想从 JavaScript 中调用 someFunc,如下所示:
function test(){
$.fn.someFunc();
}
但是没用!我看过一篇文章how to call function in jquery from javascript .是否可以?
只是在您传递给 $()
的闭包(函数)中定义一个函数不会将它放在 jQuery fn
对象上。为此,您必须明确地执行此操作:
$.fn.someFunc = someFunc;
通常,您不会在 $()
的回调中执行此操作,您会更早执行此操作。插件这样做是为了添加功能,这些功能应该在 DOM 就绪之前就已经存在。
例如,这里有一个愚蠢的小插件,可以将文本变成绿色:
(function($) {
$.fn.green = green;
function green() {
return this.css("color", "green");
}
})(jQuery);
...您可能会使用 DOM 就绪:
jQuery(function($) {
$(".foo").green();
});
Live example | Live source
请注意,对它的调用来自 jQuery 实例,而不是直接来自 $.fn
。