2016-07-30 7 views
1

AppceleratorでUI要素を動的にターゲティングするにはどうすればよいですか?</strong></p> <pre><code><Label id="targetID1"/> <Label id="targetID2"/> <Label id="targetID3"/> </code></pre> <p><strong>controller.js:合金元素をターゲット

views.xmlと簡単です

$.targetID1.backgroundColor = "red"; 
$.targetID2.backgroundColor = "green"; 
$.targetID3.backgroundColor = "blue"; 

しかし、動的にターゲットを渡す方法がありますIDを関数に渡し、この関数の値を設定しますか?特に、最後に選択したオブジェクトの背景色を変更したいと思います。以下のようなインスタンスのために何か

var selectedObject; 

function clickOnObject(e) { 
selectedObject = e.source.id; 
return selectedObject; 
} 

changeBackgroundColor(selectedObject) 

//should change the background color of the selected object passed to the function 

function changeBackgroundColor(id) { 
    $.id.backgroundColor = "orange" //this does not work 
} 

私は(Select dynamically generated element by id in Titanium Appcelerator)これを見つけたが、私は、これは同じものであるかどうかわからないです。

私は複数のフィールドを持ち、switch文を使用しました。もちろんこれはかなり面倒です。

答えて

2

あなたの場合、IDなしで selectedObject = e.sourceを使用できます。そして変数全体の中にオブジェクト全体があります。 changeBackgroundColorの中では$を使わずにidを使います。

var obj; 

function fn(){ 
    obj.title = "testasdf" 
} 

$.btn1.addEventListener("click",function(e){ 
    obj = e.source; 
    fn(); 

}); 
$.btn2.addEventListener("click",function(e){ 
    obj = e.source; 
    fn(); 
}); 

index.xml内に2つのボタンが作成されています。しかし、var objなしでこれを使うことができ、パラメータとしてfn()にe.sourceを渡すだけです。あなたのユースケースに応じて

+0

完璧!ありがとう! – user24957

関連する問題

 関連する問題