如何动态引用 jQuery 插件实例

How to reference jQuery plugin instance dynamically?

本文关键字:引用 jQuery 插件 实例 动态 何动态      更新时间:2023-09-26

在我的jQuery插件执行流程中,我渲染了这个侧边栏链接列表。

//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>';
}

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

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

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

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

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

然后这样做:

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

现在,我希望我的插件准备相同的链接,那么我如何从插件中编写引用来替换上面示例中的 myPlugin var?

无论如何,您都可以通过遵循删除突兀的JavaScript的最佳实践来轻松做到这一点。

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

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