2012-02-19 20 views
0

私は2つのjsファイルを持っています。 1つはprototypeの構文とjQueryを使用します。どういうわけか彼らは一緒に働かない。私はfilename.functionnameを使ってファイル内の関数を呼び出すことができます。jsファイル名を使用してjavascript関数を呼び出す

構文を教えてください。または、構文の一部が矛盾するので、protoypejQueryを一緒に実行する方法はありません。

答えて

3

関数をファイル名で呼び出すことはできません。

使用のドキュメントからjqueryのnoCoflicts

ショート例を:それは同じページに複数のJavaScriptライブラリを使用しないことをお勧めし

<script type="text/javascript" src="other_lib.js"></script> 
<script type="text/javascript" src="jquery.js"></script> 
<script type="text/javascript"> 
    $.noConflict(); 
    jQuery(document).ready(function($) { 
    // Code that uses jQuery's $ can follow here. 
    }); 
    // Code that uses other library's $ can follow here. 
</script> 
-1

、その理由の多くはありますが、私が見ているように、最も重要なのは、2つの異なるフレームワークをロードする理由は?彼らは通常、サイズがかなり大きく、ほとんどの場合、多くの共有機能があります。

ただしこれにそうしようとすることができます:存在しないファイル名を使用してメソッドを呼び出すためのシンテックスについてはhttp://docs.jquery.com/Using_jQuery_with_Other_Libraries

。ブラウザがJavaScriptコードをロードすると、それをドキュメントのグローバルスコープに追加します。問題はしかし、あなたが彼らのコードの少なくともすべてではない、名前空間に包まれていないサードパーティのライブラリを使用していることである

var MyNamespace = { 
    methodA: function() { 
    // do something 
    }, 
    methodB: function() { 
    // do something 
    } 
}; 

MyNamespace.method(); 

:あなたは何ができるか は何かのように、「名前空間」内のものを入れています。

+1

jQueryは最小化すると** 32 kb **です。サイズがあまりにも大きいわけではありません... – gdoron

+0

これは、あなたが物事を見ているかどうかによって異なります。少量のトラフィックで簡単なサイトを持っているなら、ロードするバイト数とリクエスト数を減らそうとするjsの良い習慣ですそれでは大したことではありません。また、jQueryのコアだけを使用する人もほとんどいません。 –

+0

私たちは3つの別々のフレームワークを使用します。 JQueryのバックボーンとアンダースコア。多くのフレームワークは、特に連携して動作するように設計されています。 UnderscoreとjQueryはいくつかの機能を共有していますが、それぞれ独自の機能セットを持っています。 – tkone

関連する問題