JQuery 访问插件中的变量
Posted
技术标签:
【中文标题】JQuery 访问插件中的变量【英文标题】:JQuery Accessing Variables in a Plugin 【发布时间】:2012-01-17 22:52:17 【问题描述】:如何从准备好的文档访问和设置插件中的变量。我在 *** 上找到了一些相关的问题,但它们并没有帮助我理解如何做到这一点。
谢谢!
(function($)
$.fn.myPlugin = function()
var myVar1 = true;
var myVar2 = true;
var myVar3 = true;
....
if(myVar1 == true)
// do something
...
....
)(jQuery);
<script type="text/javascript">
$(document).ready(function()
$.fn.myPlugin.myVar1 = false;
);
</script>
【问题讨论】:
我认为更好的问题是为什么你觉得这是个好主意?以这种方式插入插件不太可能产生理想的效果,通常有选项和回调来做你想做的任何事情。这里的上下文是什么? @Sinetheta 我相信他的意思是他自己的插件 @Sinetheta 要按照 jquery 手册执行默认值和选项,我必须重写所有代码,我不知道从哪里开始。我是一个完整的新手。我认为访问变量并更改其值将是一件非常简单的事情。几乎所有的答案都假设我知道自己在做什么——如果是这样的话,我就不会在这里了…… 【参考方案1】:使用this
代替var
:
this.myVar1 = true;
this.myVar2 = true;
....
【讨论】:
如何在 if 语句中引用它?只需调用属性或 this.propertyName?我尝试了两种方法,但它不起作用。谢谢 @user1002039 你应该可以这样做:if(this.myVar1) ...
【参考方案2】:
http://stefangabos.ro/jquery/jquery-plugin-boilerplate/
有一些关于如何在插件中使用公共属性和方法的示例。
【讨论】:
【参考方案3】:为什么需要在插件之外调用它? 将您的变量作为布尔选项,而不是如果您构建一个不同的函数,则为 true 或 false... 当您将在单独的文件中使用插件时,您将编写:
$(document).ready(function()
$('#id').myPlugin()
//options
);
这样,如果在您的选项中,您的变量将设置为 true 或 false,它将执行两个不同的功能...
顺便说一句,如果你需要在插件之外调用一个变量,这是这样的:
$('#id').data('myPlugin').option.foo;
【讨论】:
这确实是 jquery 函数文档中推荐的方法之一。 这些变量被设置为默认值。我希望在使用插件时能够打开或关闭相关功能。 @user1002039 看看我的编辑。将您的变量存储到您想要的选项或设置中(plugin.settings = //your vars ),然后您可以调用它。以上是关于JQuery 访问插件中的变量的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 jQuery/AJAX 访问 views.py 中的变量?
如何在 Chrome 插件中访问任意网页中的 JavaScript 变量