javascript - 从应用插件的元素中获取插件对象引用

标签 javascript jquery jquery-ui jquery-plugins

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

的 ui
var myPluginVar = $('#targetElement').myPlugin();

我创建了一个按钮并在上面添加了一个点击事件监听器

$('#myButton').click(function(){
    // HERE I want reference of myPlugin back.
}

现在在按钮触发器上我想取回 myPlugin 对象。 我不想使用 myPluginVar。有什么方法可以使用应用了插件的元素来获取 myPlugin 的引用。

最佳答案

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

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

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

$.fn.myPlugin = function(){
  this.text("Hello, world!");
  
  var t = this;
  
  $.myPlugin = function() {
    return t;
  }
};

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

$("#button").click(function(){
  $.myPlugin().text("something else");
});
<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>

关于javascript - 从应用插件的元素中获取插件对象引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42226024/

相关文章:

javascript - 内容框不响应子 Masonry 内容高度。 fiddle 包括

jQuery:如果文件选择是由文件输入以外的元素触发的,则文件输入元素上的 "change"事件不会触发

ajax - 使用 Jquery 设置 ajax 请求的基本 url 的最佳方法是什么?

jquery-ui - 使用 jquery 函数存储数组中的 4 个变量并可由另一个页面访问的最佳方法是什么

javascript - JQuery 用户界面 : Get ID of source element in drag'n'dop

jQuery-UI 小部件/控件可以进行 Twitter UI 之类的更新吗?

javascript - 类型 '(event: React.MouseEvent) => void' 不可分配给类型 '(e?: MouseEvent<Element, MouseEvent> | undefined) => void'

javascript - 如何替换文本区域字段中的最后一个字符?

javascript - HTML 表格中列的不同宽度

javascript - 省略号不起作用