2012-06-07 48 views
1

嘗試使用komodo來構建一個jQuery UI部件..我啓用了jquery api引用,並在.html文件中工作得很好。然後打開我的widget.js文件並輸入;jquery支持在html中工作,但不在.js中?

(function($) { 

其次

$. 

我會希望獲得智能這裏,而是我得到:

沒有找到落成。 (確定完成的錯誤)

這是一個文件擴展名的東西嗎? jquery ui小部件只是不受支持?

+0

在進一步挖掘中,似乎問題在於.js文件沒有以任何方式引用jquery,所以它沒有添加到intellisense ..不知道如何解決這個不幸.. – XeroxDucati

回答

0

該觀點是問題所在。沒有它:

(function() 
    { 
    $. //works 
    jQuery. //works 
    ... 
    } 
); 

Komodo知道全局變量$和jQuery。本地範圍優先,所以$變成未定義的。相反,如果你通過jQuery代替,$可以工作,但jQuery不會:

(function(jQuery) 
    { 
    $. //works 
    jQuery. //does not 
    ... 
    } 
); 
+0

有道理,但打破了jquery ui小工廠,不是嗎? – XeroxDucati

+0

$ === jQuery,那麼將通過犧牲jQuery自動完成來保存工廠,就像在第二個代碼示例中一樣? –

2

從科莫多傢伙,

的問題是,科莫多不知道匿名 函數調用的情況下 - 換句話說科莫多是不夠聰明,知道在這種情況下 「jQuery的」 ==「$」。

但是所有的東西都不會丟失,你可以通過告訴它在這種情況下 類型來幫助科莫多。下面是一個使用jsDoc幫助 定義 「$」 的類型,例如:

(/** @param {jQuery} $ */function($) { 
     $. // will show jQuery completions now 
    })(jQuery) 

;

相關問題