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

时间:2015-01-16 18:19:05

标签: javascript jquery this self

在我的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引用的对象。

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

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

如果我从页面正文中使用此插件,我可以在init时轻松存储对它的引用

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

后来这样做:

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

现在,我希望我的插件准备相同的链接,那么我如何在插件中编写一个refrence以替换上面这个例子中的myPlugin var?

1 个答案:

答案 0 :(得分:0)

您可以通过遵循删除突兀的javascript的最佳做法轻松完成此操作。

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

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