0

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

  1. 我的代码变得更加复杂并且
  2. 字符串操作更快

如何通过字符串链接调用插件的功能?

问题是找到创建插件的实际 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
    });
 }

但是有没有更好的方法来做到这一点?

4

1 回答 1

0

不要这样做。您获得的额外性能可以忽略不计。

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

于 2013-01-20T04:51:36.587 回答