javascript - 如何从方法内访问 jQuery 插件变量?

标签 javascript jquery

我正在尝试编写一个简单的 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();

FIDDLE HERE

此代码首先提示“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();

例如,如果您不希望除您的插件之外的任何其他代码可以访问您的变量,这可能是更理想的方法。 fiddle :http://jsfiddle.net/79sg8es1/ .

关于javascript - 如何从方法内访问 jQuery 插件变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25361467/

相关文章:

javascript - 使用jQuery获取带有子元素的div文本

javascript - 如何在回调函数中调用继承的函数

javascript - 以下 angularJS 声明属于哪个命名空间?

javascript - 我如何使用 jquery(或只是 javascript)遍历 cookies?

javascript - 使用 Javascript/jQUery 测量 HTML 中的字符串长度

javascript - 当用户高兴并且使用face-api检测到面部时如何拍摄图像

javascript - 从选择多个中获取值

javascript - 如何使谷歌地图不居中,而是稍微偏上一点?

javascript - ExtJS4 获取商店成员(member)

jquery - 修复更改平滑导航背景颜色从白色到黑色