【问题标题】:JQuery Accessing Variables in a PluginJQuery 访问插件中的变量
【发布时间】:2012-01-17 22:52:17
【问题描述】:

如何从准备好的文档访问和设置插件中的变量。我在 stackoverflow 上找到了一些相关的问题,但它们并没有帮助我理解如何做到这一点。

谢谢!

(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 手册执行默认值和选项,我必须重写所有代码,我不知道从哪里开始。我是一个完整的新手。我认为访问变量并更改其值将是一件非常简单的事情。几乎所有的答案都假设我知道自己在做什么——如果是这样的话,我就不会在这里了……

标签: jquery jquery-plugins options defaults


【解决方案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 }),然后您可以调用它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-07
    • 1970-01-01
    相关资源
    最近更新 更多