如何从方法中访问jQuery插件变量?
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";
你更新的活塞在这里:http://jsfiddle.net/5zt9ps20/
相关文章:
- 如何在Angular2中使用jQuery插件
- 如何使jQuery插件函数可调用以供独立使用,而不在集合上操作
- 我的jQuery插件参数没有正确启动,遇到了问题
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- TableExport jquery插件:文件名和扩展名问题
- 如何在使用selectBoxIt JQuery插件时检测选项更改
- jQuery插件-从插件中调用公共方法
- 扩展jQuery插件以更改配置
- "工具提示"jQuery插件坏了
- 不能在图像中的地图标记中使用花式框jquery插件的区域标记
- 使用Booklet Jquery插件,我如何验证最后一页是否显示
- 合并TinyMCE(jQuery插件)文件
- 带有jquery插件的backbone.js视图
- 自制jQuery插件已触发,但无法工作
- 我如何才能找到哪些网站使用我的jQuery插件
- jquery插件或javascript方法自动调整文本输入(而非文本区域)(固定宽度)可变高度的大小
- 在多个元素上使用jquery插件,只需稍作修改
- HtmlBox(jquery插件)在ajax调用中不起作用
- 构造jQuery插件
- 使用filedownload jquery插件处理FilePathResult返回值