2012-09-15 21 views
5

के लिए बाध्य नहीं मेरे विचार से एक में मेरे पास है:रीढ़ की घटनाओं डोम तत्व

events: { 
    'click .tab': 'doSomething', 
}, 

तो:

doSomething: function(){ 
    ... 
}, 

यह मेरे विचार में एक आवर्ती संरचना है, लेकिन किसी कारण 'DoSomething के लिए 'इस दृश्य में क्लिक द्वारा फ़ंक्शन ट्रिगर नहीं किया जा रहा है।

घटनाओं के लिए बाध्य होने वाले तत्व कब हैं?

इसे डीबग करने पर कोई सुझाव?

उत्तर

6

प्रतिनिधिमंडल व्यू कन्स्ट्रक्टर के अंत में delegateEvents विधि के दौरान होता है।

http://documentcloud.github.com/backbone/docs/backbone.html#section-144

this लौटने से पहले this.delegateEvents()render अंदर बुला मैन्युअल की कोशिश करो। क्या आप this.el के साथ अपने initialize या render विधियों के अंदर फ़ुटज़िंग कर रहे हैं जिस तरह से रीढ़ की हड्डी की उम्मीद नहीं है? यहाँ बेला के लिए

+1

एचएम, मैंने बस इसे प्रस्तुत करने की कोशिश की .delegateEvents() प्रस्तुत करने में वापसी से पहले लेकिन यह अभी भी घटनाओं को बाध्य नहीं कर रहा है। इसके अलावा, मैं प्रारंभिक या प्रस्तुत करने के अंदर इस .el के साथ गड़बड़ नहीं कर रहा हूं। काम करने वाली एकमात्र चीज var को कॉल कर रही थी = यह; इस $ ('टैब।') पर ('क्लिक', function() {that.doSomething();})।। प्रारंभ के अंदर, लेकिन यह खराब रूप की तरह लगता है ... – captDaylight

+0

मैं $ el या el के साथ गड़बड़ नहीं कर रहा था, लेकिन मेरे प्रस्तुत करने के लिए प्रतिनिधियों को जोड़ना घटना बाध्यकारी तय किया। – Duke

10

लिंक: http://jsfiddle.net/7xRak/

चयनकर्ता छोड़ना घटना को देखने के मूल तत्व (this.el) करने के लिए बाध्य होने के लिए कारण बनता है।

अपने class="tab" है विचारों डोम तत्व का मतलब है अगर this.el तो आप

events : { 
    'click' : 'dosomething' 
} 

के रूप में और इस तरह

<div class="tab"> 
    <span class="inner"></span> 
</div> 

this.el में आंतरिक तत्व के लिए तो आप के रूप में घटना के लिए बाध्य करना चाहिए घटना बाँध चाहिए,

events : { 
     'click' : 'dosomething' 
     'click .inner' : 'onInnerClick' 
    } 

दस्तावेज़: http://backbonejs.org/#View-delegateEvents

+2

यह वही है जो मैं ऊपर दिखा रहा हूं, मैं इस पैटर्न के बारे में अच्छी तरह से जानता हूं। मैं जो कहने की कोशिश कर रहा हूं वह यह है कि किसी कारण से यह पैटर्न काम नहीं कर रहा है, इसलिए घटना प्रतिनिधिमंडल को डीबग करने के कुछ तरीके क्या हैं। – captDaylight

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