如何创建一个链接来调用jquery插件本身的功能

时间:2013-01-20 04:48:30

标签: jquery jquery-plugins hyperlink

我的插件会创建链接,然后调用插件本身的功能。我可以直接操作DOM并使用$link.click(function() {...})之类的东西,但我不想使用这种方法,因为 -

  1. 我的代码变得更加复杂和
  2. string manipulation is faster
  3. 如何通过字符串链接调用插件的功能?

    问题是找到创建插件的实际DOM元素。我不能只使用/设置HTML ID,因为它可能被页面用于其他目的或者可能不是唯一的。我想出了以后添加一个独特类来查找插件的想法:

     // init function of plugin
     init : function( options ) {
         return this.each(function () {
            var data = $this.data("myPlugin");
            if (!data) {
              data.uniqueClass = 'p' + new Date().getTime() + '_' + Math.random().toString().substring(2);
              $this.addClass(data.uniqueClass);  
              this.data('myPlugin', data);
              // generate link
              $this.html('<a onclick="jQuery(\'.' + data.uniqueClass + '\').myPlugin(\'func\');">Do func</a>');
            }   
         });
     }
    
     // function that i want to call of my plugin
     func : function() { 
        return this.each(function () {
           // do stuff
        });
     }
    

    但有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

不要这样做。你获得的附加性能可以忽略不计。

我不会将此作为评论发布,因为这应该是答案。 不要这样做!!