javascript - 我可以获得对在 jQuery 插件中创建的对象的引用吗?

标签 javascript jquery

也许我的大脑被炸了,但我正在编写一个插件,它创建了一个元素的调整,但也创建了一个我想访问的对象。所以插件看起来像这样

(function ($) {
  $.fn.myPlugin = function () {
    return this.each(function () {

          // do some stuff to the element...

          this.objectInstance = new usefulObject();

    });
  };
})(jQuery);

function usefulObject(){
    // useful object properties and methods....

    this.doSomething = function(){
        alert("Don't google Google. You'll break the internet.");
    }
}

所以当我调用插件时,我还希望能够访问我创建的那个有用的对象。我认为这样的事情可能会奏效....

tweakedElement = $("#someDiv").myPlugin();

tweakedElement.objectInstance.doSomething();

...但这不起作用。我怎样才能做到这一点?我能做到吗?明信片上或下面的答案,以适合您的方式为准。

最佳答案

您可以使用 jQuery 的 data 函数将 objectInstance 存储在相关元素上:

http://api.jquery.com/jQuery.data/

The jQuery.data() method allows us to attach data of any type to DOM elements in a way that is safe from circular references and therefore from memory leaks. We can set several distinct values for a single element and retrieve them later

关于javascript - 我可以获得对在 jQuery 插件中创建的对象的引用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2783889/

相关文章:

javascript - 设置变量之前检查项目是否缺失

javascript - 使用上下文调用bind()

javascript - 我可以在 node.js 中使用 CoffeeScript 而不是 JS 吗?

javascript - 当你显示和隐藏一个 div 时,它会自动重新调整周围的元素吗?

javascript - jQuery - 将列表项的元素 move 到同一项目的另一个元素内+对列表中的每个项目执行此操作

javascript - 在 Javascript 中使用 .splice() 删除数组中的值

javascript - 动画显示和隐藏登录框

jquery - 关于 jQuery、元数据和 XHTML 合规性

javascript - vue-apollo 在路由器保护中执行 graphql 查询

jquery - Bootstrap 日期选择器选项似乎不起作用(vitalets 的日期选择器)