2013-01-21 11 views
5

TypeScript/JQueryを使用してDOM要素の位置と高さ/幅を調整しようとしています。今、私はこのコードを移動しようとしていますTypeScript/jQueryを使用して要素を渡す方法

 function ActOnClick(itemClicked, loadPath) { 
      //sample code 
      var v1 = itemClicked.offset(); 
      var v2 = itemClicked.width(); 
      var v3 = itemClicked.height(); 

     }; 

     $(document).ready(function() { 

      $("#idCRM").click(function() { 
       ActOnClick($("#idCRM"), "/Widgets/GetCRM"); 
      }); 
} 

idCRMは私CSHTML文書で 'セクションにある(しかし、それは任意のdiv要素などすることができる)どこ

:活字体前 は、私は単にこのような何かをしましたどのようなタイプのActOnClick関数がjQueryの$( "#idCRM")から来るのでしょうか?今は 'Element'を選択しますが、a)幅、高さなどを公開しません。b)$( "#idCRM")によってActOnClick呼び出しが失敗します。

function ActOnClick(itemClicked: Any, loadPath: string) { 
    var v1 = itemClicked.offset(); 
    var v2 = itemClicked.width(); 
    var v3 = itemClicked.height(); 
}; 

活字体は基本的にAny変数にアップシャット、それがいずれかを発行しません:あなたはうまく動作するコードが必要な場合は

/// <reference path="../../ScriptsTS/jquery.d.ts" /> 
function ActOnClick(itemClicked: Element, loadPath: string) { 

    var v1 = itemClicked.offset(); <-- FAILS 
    var v2 = itemClicked.width(); <-- FAILS 
    var v3 = itemClicked.height(); <-- FAILS 

}; 

$(document).ready(function() { 

    $("#idCRM").click(function() { 
     ActOnClick($("#idCRM"), "/Widgets/GetCRM"); <-- FAILS 
    }); 
} 

答えて

14

は、あなたはいつものように、Any typescriptですタイプを使用することができますエラーまたは警告。しかし、$("#idCRM")jquery.d.tsで定義されたJQueryインターフェイスを実装するオブジェクトを返す必要がありますので、あなたが実際に使用する必要があります。

function ActOnClick(itemClicked: JQuery, loadPath: string) { 
    var v1 = itemClicked.offset(); 
    var v2 = itemClicked.width(); 
    var v3 = itemClicked.height(); 
}; 

offset()width()height()方法は、そのインターフェイスで定義されている、と彼らはObjectを返され、numberとそれぞれnumberである。

+0

JQueryはwidth()などを公開していないようです。 – Marcel

+0

私のバージョン([DefinitelyTyped](https://github.com/borisyankov/DefinitelyTyped)のjquery-1.8.d.ts)は公開しています幅の方法 – SWeko

+0

うん - あなたはそうですよ! - ありがとう – Marcel

関連する問題