2010-09-20 46 views
0

我正在创建一个jQuery插件,我无法设置类/方法来适应api访问我想。jQuery插件方法链接类布局

这里是我到目前为止,但它不工作(我得到一个对象不支持此属性或方法错误):

(function($){ 
    $.kitty= function(name) { 
     this.name = name; 
     this.cat= function(say) { 
      alert( this.name + ": " + say); 
     } 
    }; 

})(jQuery); 

我想用引起的输出:

$.kitty('chairman meow').cat('meow!'); 

输出:

chairman meow: meow! 

回答

0

尝试

(function($) { 
    $.kitty = function(name) { 
     this.name = name; 
     this.cat = function(say) { 
      alert(name + ": " + say); 
     } 
      return this; 
    }; 

})(jQuery); 


$(function() { 
    $.kitty('chairman meow').cat('meow!'); 
})​ 

不要忘了返回对象。

demo

+0

你是对的!我不敢相信我错过了那个;谢谢! – Christopher 2010-09-20 08:43:21

0

试试这个

$.kitty = function(name) { 
    return { 
     name: name, 
     cat: function(say) { 
      alert(this.name + ": " + say); 
     } 
    } 
}; 
+0

速度和JSON表示法的大拥抱:D – Christopher 2010-09-20 08:43:37

0

你的代码不能正常工作,因为你试图调用$ .kitty的返回值的函数猫。由于$ .kitty不会返回任何内容,因此不需要调用cat函数。如果你以$ .kitty的形式返回它,它会起作用,但我不认为这是编写jquery pluging的正确方法。看看this如果你想知道它是如何工作的...

+0

似乎每个人都知道这一点,但我!现在我更聪明了,谢谢你:D – Christopher 2010-09-20 08:50:02