Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我可以获得jQuery插件中创建的对象的引用吗?_Javascript_Jquery - Fatal编程技术网

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

Javascript 我可以获得jQuery插件中创建的对象的引用吗?,javascript,jquery,Javascript,Jquery,也许我的大脑被炸了,但我正在写一个插件,它创建了一个调整元素,但也创建了一个我想访问的对象。这个插件看起来像这样 (function ($) { $.fn.myPlugin = function () { return this.each(function () { // do some stuff to the element... this.objectInstance = new usefulObject(); });

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

(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
存储到相关元素上:

jQuery.data()方法允许我们 将任何类型的数据附加到DOM 以一种安全的方式使用元素 循环引用,因此来自 内存泄漏。我们可以定几个 单个元素的不同值 稍后再取回


为什么不在插件本身中执行doSomething()?或者设置是否在插件本身中添加doSomething()的选项?我需要在插件创建很久之后再访问它。该插件创建了一组SVG路径,我需要从应用程序的其他部分访问这些路径。