2013-03-15 72 views
1

我正在使用MVC Extjs,我希望兩個不同的函數在按鈕的單擊事件上運行。這是迄今爲止我控制器代碼:如何在單個按鈕單擊事件上運行兩個函數

Ext.define('MyApp.controller.myController', { 
    extend: 'Ext.app.Controller', 

    runFirst: function(button, e, options) { 
     console.log('first function is running'); 
    }, 

    runSecond: function(button, e, options) { 
     console.log('second function is running'); 
    }, 


    init: function(application) { 
     this.control({ 
      "#myButton": { 
       click: this.runFirst, runSecond //THIS PART DOESN'T WORK :(
      } 
     }); 
    } 

}); 

我不能同時獲得runFirstrunSecond當我點擊myButton的運行。

您可以在這裏下載所有代碼:https://github.com/nitzaalfinas/Extjs-run-2-function-with-one-click/tree/one

請你告訴我怎麼上的一個按鈕運行兩個功能點擊?

回答

6

你在做什麼是無效的Javascript。您不能將兩個不同的值,以一個變量(這是所有click:是)

所以,你可以用這種方式實現它:

init: function(application) { 
    this.control({ 
     "#myButton": { 
      click: this.runBoth 
     } 
    }); 
} 

runBoth: function(button, e, options) { 
    this.runFirst(button, e, options); 
    this.runSecond(button, e, options); 
} 

或者,用匿名函數做到這一點:

init: function(application) { 
    this.control({ 
     "#myButton": { 
      click: function(button, e, options) { 
       this.runFirst(button, e, options); 
       this.runSecond(button, e, options); 
      } 
     } 
    }); 
} 
+0

+1 - 它不需要新的函數。只需'點擊:功能(按鈕,e,選項)'是好的。 – 2013-03-15 09:15:58

+0

謝謝你的答案,但它不起作用。我會給一個完整的MVC代碼。只需等待...... – kenzominang 2013-03-15 09:32:23

+0

請在此處找到完整的MVC代碼https://github.com/nitzaalfinas/Extjs-run-2-function-with-one-click/tree/one 只需下載並在本地服務器上運行即可嘗試並請告訴我如何在點擊按鈕時運行2功能 – kenzominang 2013-03-15 11:32:31

相關問題