2010-09-20 43 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