首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从应用插件的元素获取插件对象引用

从应用插件的元素获取插件对象引用
EN

Stack Overflow用户
提问于 2017-02-14 20:19:46
回答 2查看 1.1K关注 0票数 3

请考虑以下代码。这里我有一个jquery插件myPlugin,我用它修改了#targetElement的ui

代码语言:javascript
运行
复制
var myPluginVar = $('#targetElement').myPlugin();

我创建了一个按钮,并在其上添加了一个单击事件侦听器

代码语言:javascript
运行
复制
$('#myButton').click(function(){
    // HERE I want reference of myPlugin back.
}

现在,在按钮触发器上,我想要取回myPlugin对象。我不想使用myPluginVar。有没有办法使用插件的元素来获取myPlugin的引用?

EN

回答 2

Stack Overflow用户

发布于 2017-02-21 16:26:10

这取决于你如何编写你的插件。

下面是一个基本插件的例子:

代码语言:javascript
运行
复制
(function($){
    $.fn.myPlugin = function(){
        return this.text('Iam is myPlugin');
    };
}(jQuery));

这个插件(目前)不能被引用,因为它没有把自己传递给任何东西。

但是如果把插件代码改成这样:

代码语言:javascript
运行
复制
(function($){
    $.myPlugin = function(el){
        $(el).data('myPlugin', this);
        return $(el).text('Iam is myPlugin');
    };
    $.fn.myPlugin = function(){
        return new $.myPlugin(this);
    };
}(jQuery));

你可以用以下命令调用plugin self referenced:

代码语言:javascript
运行
复制
$('#targetElement').data('myPlugin');

当然,如果插件从未在#targetElement上初始化,它将以未定义的形式返回

但是如果你已经初始化了#targetElement,使用:

代码语言:javascript
运行
复制
$('#targetElement').myPlugin();

它将返回$.myPlugin对象

票数 1
EN

Stack Overflow用户

发布于 2017-02-21 22:38:42

如您所知,$.fn.myPlugin = function(){}将创建一个可以在如下元素上调用的插件:$("#example").myPlugin();

$.myPlugin = function(){}将创建一个可以像这样静态调用的插件:$.myPlugin();

因此,您所要做的就是在每次调用$.fn.myPlugin时设置$.myPlugin,这样它就会引用最后使用的元素。

代码语言:javascript
运行
复制
$.fn.myPlugin = function(){
  this.text("Hello, world!");
  
  var t = this;
  
  $.myPlugin = function() {
    return t;
  }
};

$("#test").myPlugin();

$("#button").click(function(){
  $.myPlugin().text("something else");
});
代码语言:javascript
运行
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="test">
</div>
<button id="button">Click Me</button>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42226024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档