2013-10-25 30 views
11

我需要在我的應用程序中使用jquery自定義插件,以及如何使用typescript創建自定義jquery插件。我用Google搜索了很多,我只是得到下面的鏈接我們如何使用typescript創建一個自定義的jquery插件?

http://typescript.codeplex.com/discussions/398401

Define a custom jQuery UI widget in TypeScript

上面的鏈接使用純JavaScript代碼,但是JavaScript代碼將在打字稿工作,但這個問題是我不能在此插件中使用打字稿類。 有沒有什麼辦法可以在jQuery插件中使用打字稿類,或者是否有其他方式在打字稿中創建jQuery插件。

任何建議,應該感激。

+0

Typescript創建Javascript。那麼,你在掙扎什麼? http://learn.jquery.com/plugins/basic-plugin-creation/ – WiredPrairie

+0

@ WiredPrairie,我知道,但我有打字稿小部件,我需要轉換成插件。有沒有辦法將打字稿自定義小部件修改爲打字稿自定義插件? – karthik

+0

什麼是「自定義小部件」?你需要使用jQuery Plugin創作技巧。 – WiredPrairie

回答

7

創建插件時,使用JavaScript和Typescript幾乎沒有區別。您可能需要首先從here獲取TypeScript的jQuery定義,並將其添加到您的項目中(或者將其包含在命令行等中,具體取決於您的開發環境)。

然後,只需編寫插件並使用您想要的任何類和現有代碼即可。下面的示例除了證明它與原始JavaScript插件技術幾乎沒有任何區別之外,沒有做任何其他事情。

(function($) { 
    $.fn.myPlugin = function() { 
     // do something 
     return this; 
    }; 

    $.fn.myEachPlugin = function(options) { 
     var settings: any = $.extend({ 
      color: "#ffff00" 
     }, options); 

     return this.each(function() { 
      // do something ... 
     }); 
    }; 

})(jQuery); 
+0

你的答案四次使用'胖箭頭'匿名函數表示法。在兩種情況下,由於TypeScript處理「this」的方式,需要使用舊式的function(){'構造:請參閱[TypeScript Handbook](http://www.typescriptlang.org/Handbook#functions -lambdas和 - 使用-39this39)。 基本上,當使用胖箭頭語法時,'this'指向匿名函數**之外的任何'this'。在這種情況下,你需要傳統的,正常的方式,所以你需要: '$ .fn.myPlugin =函數(){' 和 '$ .fn.myEachPlugin =功能(選件){' – MarkusT

相關問題