2011-01-26 29 views
0

私はインターネット上でドル記号関数を見つけ、javascriptの切り替えメニューに使用することに決めました。しかし、 "$"記号は私のコードを失敗させます。

これは私が使用しようとしているものです:

function $() { 
     var elements = new Array(); 
     for (var i = 0; i < arguments.length; i++) { 
      var element = arguments[i]; 
      if (typeof element == 'string') 
       element = document.getElementById(element); 
      if (arguments.length == 1) 
       return element; 
      elements.push(element); 
     } 
     return elements; 
    } 

    function toggle(obj) { 
     var el = $(obj); 
     el.style.display = (el.style.display != 'none' ? 'none' : ''); 
    } 

"関数$(){" から$は、コードを壊しているようです。この関数をどのように宣言しますか? $を "anything"と置き換えると、ドル関数としては機能しません。

+0

jqueryや他のJavaScriptフレームワークも使用していますか? –

+0

なぜ ''$''がこの関数の良い名前だと感じるのか説明できますか? – ChaosPandion

答えて

7

ドル記号は、標準のJavaScript機能ではなく、サードパーティのライブラリの一部です。

このようにドル記号を使用する2つのよく知られたライブラリがあります。

古いものはPrototypeと呼ばれていますが、現在流行しており、あなたが使用している可能性が最も高いのはJQueryです。

これらのライブラリはどちらも、HTMLページに<script>というタグを追加してライブラリコードを組み込んだ後、その機能を使用できます。

これらのライブラリの機能性の大部分はそれぞれ、対応する$()機能に含まれています。 JQueryの場合には、という関数をjQuery()として参照して、名前空間の衝突を防ぐことができます(両方を使用したい場合)。

続きを読む前にJQueryを読むことをお勧めします.JQueryは非常に強力で多くの機能を追加しますが、JQueryコードを記述するためのコーディングスタイルは通常のJavascriptとはかなり異なる場合がありますに。それはAPIの学習とそれができることを見つけることとはかなり別です。

$を関数名として宣言する方法は実際にあなたの質問に答えるために、JQueryのソースコードを見て、どうやって調べるかをお勧めします。

var $ = function() {alert('dollar works for me');} 
$(); 

しかし、正直に言うと、私はそれをしないだろう。しかし、私はこのように、作業$()機能に私が試した最初の時間を作り出すことに成功しました。 $()関数を実際に他のサイトで使用されている方法で使用したい場合は、JQueryを使用する必要があります。 document.getElementById()をラッピングするだけではありません。

ところで、JQueryとPrototypeだけがそこにある似たようなライブラリではありません。このようなことに興味がある場合は、MooTools,YUIなどをご覧ください。

希望に役立ちます。

+0

徹底的な答えをありがとう!私は心に留めておきます。 – Spectraljump

3

$記号は、さまざまなJavaScriptフレームワーク(プロトタイプ/ jQuery)の表記法です。それを "何か他のもの"に置き換えると、インライン関数と使用しているフレームワークとの間に衝突が発生する可能性が非常に高いでしょう。

次の例に示すように、表記法と関数はそれ自体が正確です。

新しいタブ/ウィンドウを開き、アドレスバーに次のように入力します。

javascript:eval("function $() { alert('hi'); } $();");