2013-08-20 79 views
2

钛中可能有两个对象的事件侦听器吗?即我有2个按钮,我需要点击相同的操作。对不同的钛对象具有相同的事件侦听器

我应该创建:button1.addEventListenerbutton2.addEventListener

或者

我可以做这样的:

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

或者

也许我能够像object.addEventListener('button1_clicked','button2_clicked', function() {});

回答

2

是。您应该为每个对象创建事件侦听器。为此,你应该创建一个函数,你可以用它来处理你的事件。请看看下面的例子

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 
} 

在这里,我已经使用了相同的functon showMessage()处理点击事件。点击每个按钮后,它会显示一条消息,告诉你点击了哪个按钮。

如果您有用于同一目的的按钮,你可以试试下面的

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

只是同样的功能添加到每个对象。例如,假设你有一个名为button1button2两个按钮:

function myEventListener(e) { 
    alert('Clicked button with title '+e.source.title); 
} 
button1.addEventListener('click', myEventListener); 
button2.addEventListener('click', myEventListener); 
相关问题