[英]How do I access a jQuery plugin variable from within method?
我正在尝试编写一个简单的jQuery插件,虽然我不确定如何从该插件的方法中访问插件上的变量,但我遇到了绊脚石。
(function($) {
$.fn.testPlugin = function() {
var testVar = "Hello World";
alert(testVar);
$.fn.testPlugin.testMethod();
};
$.fn.testPlugin.testMethod = function() {
alert($.fn.testPlugin.testVar);
};
}(jQuery));
$("body").testPlugin();
此代码首先警告“Hello World”然后“undefined”(因此尝试从方法中访问它返回一个空变量),有没有办法从testMethod中访问testVar? 这不可能吗? 我是以错误的方式解决这个问题吗?
您可以将变量放在外部作用域中 - 自调用函数的作用域。
(function($) {
var testVar;
$.fn.testPlugin = function() {
testVar = "Hello World";
alert(testVar);
$.fn.testPlugin.testMethod();
};
$.fn.testPlugin.testMethod = function() {
alert(testVar);
};
}(jQuery));
$("body").testPlugin();
如果您不希望除插件之外的任何其他代码都可以访问您的变量,那么这可能是更理想的方法。 小提琴: http : //jsfiddle.net/79sg8es1/ 。
您正在第一个方法中创建一个局部变量。 这使得它的范围仅限于方法本身。
相反,您应该实际创建该变量并引用插件,如下所示:
$.fn.testPlugin.testVar = "Hello World";
你更新的plunker在这里: http : //jsfiddle.net/5zt9ps20/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.