2009-08-06 5 views
0

私はJavascriptのFacebookの実装によって少し悩まされています。チェックボックスをオンにして、チェックボックスをオンにして、IDで取得できる要素のクラスを変更するようにします。FBJSを使ってCSSを変更する

私はテストコンソールを使用していて、さまざまな置換を試みました。 Javascriptは私の第一言語でも、第二、第三の言語でもありません。誰かが私の擬似コードを翻訳して助けてくれますか?

<input class="one" type="checkbox" onclick="setcolor(this.checkedornot)"> 
    function setcolor(checkedornot){ 
     if checkedornot == true {set p.one to p.one.GREEN} 
     if checkedornot == false {set p.one to p.one.RED} 
    } 

これは明らかにjavascriptではありませんが、私が必要とする機能を最もよく説明できる方法です。私の短いテストでは、FBJSはonClickイベントを登録していないようです。ありがとう!あなたが使用する必要があるのonclickイベントのために

答えて

3

FBJSは独自のゲッターとセッターを持っています。 「チェックされている」とクラスを設定/削除する方法は異なります。そして、あなたは "緑の"クラスを追加している場合は、 "赤"クラスを削除しなければなりません。または、単に要素のすべてのクラスを上書きする場合は、setClassName(class)メソッドを代わりに使用できます。クラスメソッドの追加/削除は、それが破壊的ではないので、私の答えで使用します。 onclickイベントのために

FBJS Docs: Manipulating Objects

、私はあなたがonclickのが動作しない場合は、addEventListenerを使うことになっていると思います。 Events in FBJS

this.checkedの代わりに、FBJSはgetCheckedを使用します。したがって、イベントリスナーを追加する場合(「クリック」の場合)、argに「this.getChecked()」を追加します。

setColor(this.getChecked()); 

と機能のために:

function setColor (isChecked) { 
    var p = document.getElementById(ID-OF-P); 
    if (isChecked) { 
     p.removeClassName("red"); 
     p.addClassName("green"); 
    } else { 
     p.removeClassName("green"); 
     p.addClassName("red"); 
    } 
} 

私はあまりにもかかわらず、JSの初心者くさいです。私はだと思います。これは正しいです。

+0

閉じるkmiyashiro、this.getChecked()が必要です。これは属性ではなく関数なので、呼び出す必要があります。あなたはFBJSについて正しいのですが、それはカスタムメソッドです。 – mixonic

+0

ああ、私はそれを知っている。私もそれを追加することを考えたが、私は完全にはわからなかった。ありがとう、私は私の答えでそれを変更しました。 – kmiyashiro

0

...

this.checked 

次に、あなたの関数は次のようになります。

var setColor = function(isChecked) { 
    var myElement = document.getElementById("one"); 
    if (isChecked) { 
     myElement.className = "myGreenClass"; 
    } else { 
     myElement.className = "myRedClass"; 
    } 
}; 
+0

FBJSため

チェックアウトこのリストは、通常のJS構文とは異なるゲッターとセッターを持っています。 http://wiki.developers.facebook.com/index.php/FBJSをチェックしてください – kmiyashiro

0

kmiyashiroは、そのちょうどセットmeothodので

if (isChecked) { 
    p.setClassName("green"); 
} else { 
    p.setClassName("red"); 
} 

であるべきで、何の削除方法がない、あなたが心配する必要はありません右のクラス名 のためのゲッターとセッターを除いて、ほとんどですクラス名を削除すると、上書きされます。より多くのgetterとsetter http://wiki.developers.facebook.com/index.php/FBJS#Manipulating_Objects

関連する問題