2009-08-12 8 views
0

私はJavascriptとMootoolsを初めて使い、何かを理解するのが少し難しいです。特に、Mootoolsのドキュメントは最高のものではありません。

私の質問は$セレクタに関するものです。

なぜ私はいくつかのプロパティをチェーン化できますが、他のプロパティはチェーン化できませんか?例えば

なぜ

$('results').style.border = "1px solid #000000"; 

作業を行いますが、

$('results').innerHTML = "foo"; 

はないでしょうか?

ありがとうございます。

+1

http://mootools.net/docs/core/Element/Element#Element-Properties:html – Amber

答えて

4

最初の例は実際には「連鎖」の例ではありません。

styleは、要素のCSSスタイルを表すDOM標準オブジェクトです。 MooToolsとは何の関係もありません。オブジェクトのプロパティにアクセスするための標準のドット表記です。

オブジェクトに対する操作の結果は、あなたがこのようなものを行うにできるように、操作後のオブジェクトそのものを返すときである「連鎖」:

$('id').show().move_left(200).fadeOut(); 

最後に、第二の例が機能するべきこと。実際のソースを投稿する必要があります。

+0

Mootoolsのメソッドが添付されたら、あなたはもはや通常のビルトインのJavascript関数?私は$がdocument.getElementByIdのショートカットとしても機能していると思いましたか? –

+0

それより少し複雑ですが、すべてのブラウザにはそれぞれ独自の特徴と機能があります。 Mooには、さまざまな属性、フィールド、値を変更するためのラッパー関数がいくつか用意されています。あなたはもちろん安全なものをミックスしてマッチさせることができますが、一般的にムーはあなたが守ろうとするべきスタイルを持っています。その他の記事は、.setStyles()、.set( "html"、 "foo")、.getValue()などのヘルパ関数の例を示しています。ミッシングとマッチングは、 (読み込みとデバッグのために)ラッパーを使用してください。 –

4

トリプティックの答えは素晴らしいです。私はただあなたがmootoolsからより多くの騒ぎを得るのを手伝いたいと思っています。

$('results').setStyle('border','1px solid #000'); 
$('results').set('html','foo'); 

// all together now 
$('results').setStyle('border','1px solid #000').set('html','foo'); 

$で要素をつかんでいる場合は、もはやinnerHTMLを使用したくありません。

関数は、呼び出されると何かを返します。 mootoolsのほとんどのメソッド(関数)は、$( 'results')のように変更されたものを返します。そのため、別の関数を連鎖させることができます。

あなたの例は連鎖していません。メソッドを呼び出すのではなく、オブジェクトのプロパティを選択するだけです。


Mootoolsのドキュメントは素晴らしいです。あなたはまだ言語に慣れていません。 Mootoolsは学習曲線が急であると考えられているため、問題の一部になる可能性があります。

私はあなたのように、一般的にmootoolsとjavascriptの両方に新しい。しばらく突っ込んだあと、私はmootoolsを見つけ出しました。無意識のうちに、javascriptを同時に学びました。ドキュメントはそれに不可欠でした。

+1

1.2 - element.set({styles:{prop:value、prop:value}、html: "some string"})から1 setterだけ使用できます。はい、document.getElementByIdへのシンプルなショートカットとして$を使用できます。後で適用するものは、主に要素プロトタイプ(ネイティブ関数やmootools関数にアクセスするため)に基づいていますが、返される要素は以前にあったような性質を保持しています... .innerHTMLはあなたのブラウザで許可されます。これをチェックしてください:http://mooshell.net/RRVWZ。直接プロパティにアクセスすべきではありません。メソッドを連鎖させることはできません。ブラウザ間ではない可能性があります。 –

関連する問題