如何动态引用 jQuery 插件实例?

How to reference jQuery plugin instance dynamically?

在我的 jQuery 插件执行流程中,我呈现了这个 link 的边栏列表。

//render method
var render = function(self){

  var sidebar = '';
  var main = '';

  /* Sidebar */        
  sidebar += '<ul>'
  sidebar += '<li><a href="javascript:self.data(activeFolder,1);self.data(render);">Rootobject 1</a></li>';

}

只是我不希望 link 打印出 self,但我想要一个对 self 引用的对象的引用。

------------更新------------

我会尝试用不同的方式解释我的问题。

如果我一直在页面正文中使用这个插件,我可以很容易地在初始化时存储对它的引用

var myPlugin = $('.some-element').myPlugin();

以后再这样做:

<a href="javascript:myPlugin.render();">Rootobject 1</a>

现在,我希望我的插件准备好相同的 link,那么我如何从插件中编写一个引用来替换上面这个例子中的 myPlugin 变量?

无论如何,您都可以按照消除干扰的最佳做法轻松地做到这一点 javascript。

您可以设置委托处理程序,这样事件处理就不会绑定到特定元素。只需在 body 元素上设置一个处理程序,它永远不会被添加或删除。点击事件最终会冒泡到正文,然后传入一个选择器,这样您只需关注符合条件的点击,如下所示:

$("body").on('click', ".sidebar a", function() {
  $(this).data(activeFolder, 1)
         .data(render);
});