为多元素sencha touch添加监听器

时间:2013-09-13 04:53:57

标签: events listener element sencha-touch-2.1

嗨,我是sencha touch的新手。请参阅下面的代码

    Ext.define('blackbutton.view.Login.Login', {
extend: 'Ext.Container',
xtype: 'loginview',
id:'loginview',
requires: [    
  'Ext.field.Password',
  'blackbutton.store.Login.LoginLS'
],

config: {
    style: 'background-color:#0B0B0C',
    cls: 'core',
    scrollable: {direction: 'vertical', directionLock: true},
     html      : '<section class="nt_contentWrap">'+

     ' <img src="resources/images/profile_header_signup.jpg" width="320" height="142"  alt=""/> <br>'+
      '<br>'+
        '<span class="title"> Login           </span> '+
  ' <ul class="ul-na">'+
          ' <li><input type="text" placeholder="Email" name="bbid"></li>'+

          ' <li>'+
  ' <input type="text" placeholder="Password"  maxlength="11" name="bbpassword"></li>'+
 '</ul>'+


'<button type="signup" id="login">Log In</button>'+
'<button type="signup" id="sigup" >Sign up</button>'+




'</section>',

    listeners : [
        {
            element  : 'element',
            delegate : 'button#sigup',
            tap      : function () {
                alert('test');
            }
        },
        {
            element  : 'element',
            delegate : 'button#login',
            tap      : function () {
                alert('login');
            }
        }

    ]
    }

    });

我需要为两个按钮添加监听器。这是注册按钮和登录按钮。点击事件似乎没有火。

但是如果我只为一个按钮添加监听器。

listeners : 
{
    element  : 'element',
    delegate : 'button#sigup',
    tap      : function () {
        alert('test');
    }
}

注册按钮的点击事件可以触发。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您可以根据目标ID

执行以下操作
listeners: {
    tap: {
                element: 'element',
                delegate: ['button#sigup', 'button#login'],
                fn: "DoSomething"
         }

 }


//.....

function DoSomething(e){
  if (e.target.id=="sigup"){
    //signup
  }
  else{
    //login
  }
}