2011-04-22 17 views
6

लक्ष्य केवल पहली बार क्लिक अलर्ट बॉक्स दिखाने के लिए है।एक्स्टजेस में, अचानक आग लगने पर अचानक कैसे बाध्य करें?

Ext.getCmp('myBtn').on('click', function(){ 
    alert('Alert this message only in first click.'); 
    Ext.getCmp('myBtn').un('click', this); // my attempt, still not work 
}) 

धन्यवाद।

उत्तर

10

यदि आप अपना अनाम कार्य नामित करते हैं तो यह काम करेगा? साथ ही, आप विधि कॉल से बटन का संदर्भ प्राप्त कर सकते हैं, इसलिए आपको Ext.getCmp() का उपयोग करने की आवश्यकता नहीं है।

Ext.getCmp('myBtn').on('click', function handleClick(button, event){ 
    alert('Alert this message only in first click.'); 
    button.removeListener('click', handleClick); 
}) 
+2

मैं आपके समाधान का उपयोग करता हूं, निकासी लिस्टनर की छोटी अवधि के साथ -> button.un ('क्लिक करें', हैंडलक्लिक); – diewland

5

अज्ञात फ़ंक्शन के बजाय नामित फ़ंक्शन के साथ काम करने का प्रयास करें।

var myfunction = function() { 

    alert('Alert this message only in first click.'); 
    Ext.getCmp('myBtn').un('click', myfunction); 
} 

Ext.getCmp('myBtn').on('click',myfunction); 
+0

कार्य करें। तेज प्रतिक्रिया के लिए धन्यवाद। – diewland

25

आप एक घटना ठीक एक बार शुरू किया जा चाहते हैं, इस का उपयोग करें: -

Ext.getCmp('myBtn').on('click', function(){ 
    alert('Alert this message only in first click.'); 
}, null, {single: true}); 

{single:true}, इस अनाम समारोह ठीक एक बार के बाद भेजा चलाने के लिए कर देगा तो यह आपकी आवश्यकता को पूरा करना चाहिए ।

नोट: null वास्तव में उपयोगी स्कोप परिवर्तक है। आप इस आवश्यकता हो सकती है गुंजाइश गुमनाम समारोह में @http://docs.sencha.com/extjs/5.0.0/core_concepts/events.html

ExtJS घटनाक्रम बाहर बदलने के लिए

चेक इसके अलावा @http://docs-origin.sencha.com/extjs/5.0.0/apidocs/#!/api/Ext.mixin.Observable-method-on

मुबारक ExtJS भी जाँच घटना विकल्प :)

+0

ExtJS शैली के लिए धन्यवाद :) – diewland

संबंधित मुद्दे