gpt4 book ai didi

jquery - 如何从全局范围内调用 jquery 函数内的方法?

转载 作者:行者123 更新时间:2023-12-01 03:42:50 25 4
gpt4 key购买 nike

我正在寻找一种在 jquery 函数内调用方法的方法。

示例:在上面的代码中,如何从全局范围调用 method() 方法?

(function( $ ) {

$.fn.test = function() {

var method = function() {
alert('test succeeded!');
};

}

})( jQuery );

我尝试使用以下代码:

$(document).ready(function() {

$(document).test.method(); // undefined

});

但这并没有帮助。

fiddle :http://jsfiddle.net/kB7mc/

最佳答案

您的方法属于本地范围,仅在函数 test 内可用,您无法在范围之外访问它。相反,你可以这样做。另外,在调用它时,请记住将方法调用 () 替换为 test$(document).test().method(); $(document).test.method();

(function( $ ) {

$.fn.test = function() {
var method = function() {
alert('test succeeded!');
};

return {method:method};
}

})( jQuery );

$(document).ready(function() {
$(document).test().method(); // undefined
});

Fiddle

使用 Jquery 插件模式。

(function ($) {
var methods = {

method : function () {
alert('test succeeded!');
return this; //return element for chaining
},
method2 : function () {
alert('test2 succeeded!');
return this;
}
};

$.fn.test = function (method) {
if (methods[method]) {
return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
} else if (typeof method === 'object' || !method) {
return methods.init.apply(this, arguments);
} else {
$.error('Method ' + method + ' does not exist');
}
}

})(jQuery);

$(document).ready(function () {
$(document).test('method');
$(document).test('method2');

});

<强> Fiddle

关于jquery - 如何从全局范围内调用 jquery 函数内的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17279486/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com