2013-08-20 3 views
2

티타늄에서 2 개의 개체에 대해 하나의 eventListener를 사용할 수 있습니까? 나는. 나는 2 개의 단추가 있고 나는 누르기에 동일한 활동을 원한다.다른 티타늄 개체에 동일한 이벤트 수신기

내가 작성해야 할 사항 : button1.addEventListenerbutton2.addEventListener?

또는

내가 할 수있는 일이 같은 :

var array = [button1, button2]; 
array.addEventListener... ? 

또는

어쩌면 난 그냥 각 개체에 동일한 기능을 추가 object.addEventListener('button1_clicked','button2_clicked', function() {});

답변

2

예 : 예를 들어, button1button2라는 두 개의 버튼을 가지고 가정. 각 객체에 대한 이벤트 리스너를 만들어야합니다. 이를 위해서는 함수를 작성해야하며이를 사용하여 이벤트를 처리 할 수 ​​있습니다. 예를 여기에 내가 당신의 클릭 이벤트를 처리하기 위해 같은 functon showMessage()을 사용했다

button1.addEventListener('click', showMessage); //Adding event handlers to button1 
button2.addEventListener('click', showMessage); //Adding event handlers to button2 

function showMessage(event){ 
    alert("You have clicked " + event.source.title + " button"); 
    //event.source denotes the control which fired the event 
} 

을 다음에서 참조하시기 바랍니다. 각 버튼을 클릭하면 클릭 한 버튼을 알려주는 메시지가 표시됩니다.

이 같은 목적을 위해 사용되는 많은 버튼이있는 경우, 다음과 같은

var button = []; 
var totalButtons = 10;//I'm assuming you have 10 buttons in your screen 
for(var index=0; index<totalButtons;index++){ 
    button[i] = Ti.UI.createButton({ 
     title : 'Button ' + (index+1), 
     width : 20, 
     height: 50, 
    }); 

    button[index].addEventListener('click', showMessage); 
    win.add(button[index]); 
} 
+0

덕분에 시도 할 수 있습니다! 그게 내가 필요한거야. – jagger

1

같은 것을 만들 수 있습니다 .

function myEventListener(e) { 
    alert('Clicked button with title '+e.source.title); 
} 
button1.addEventListener('click', myEventListener); 
button2.addEventListener('click', myEventListener); 
관련 문제