2013-03-01 11 views
12

मुझे पता है कि यह समस्या दस लाख बार आती है, लेकिन मैं जवाबों के माध्यम से हूं और उनमें से कोई भी मदद नहीं करता है। ।jQuery और बैकबोन पर क्लिक करें

जे एस फिडल: http://jsfiddle.net/ZrYYy/

var LoginView = Backbone.View.extend({ 

    initialize: function() { 

     console.log('Login View Intialized'); 
     this.el = $('#login-container'); 

    }, 

    // Setup the events (mainly the login) 
    events: { 

     // Login - function 
     "click #login-btn" : "checkLogin" 

    }, 

    // Actually authorization function 
    checkLogin: function() { 

     console.log("Authorizing login details with server..."); 

    } 

}); 

// Get it all up and going 
var newLogin = new Login(); 
var loginView = new LoginView({model: newLogin}); 

बेला में, जब मैं एक सामान्य $ बाँध ('# प्रवेश-btn') पर क्लिक करें(); घटना यह ठीक काम करती है हालांकि यह मेरे अपने सेटअप (क्रोम के साथ) में नहीं है। रीढ़ की हड्डी पर क्लिक घटना किसी भी काम नहीं करता है।

यह मुझे पता है कि अपने सबसे अच्छा अभ्यास इन पाद लेख में लेकिन अब जबकि इस समस्या मौजूद है यह कोई बात नहीं के लिए शामिल करने के लिए शीर्ष लेख मेरे अपने कोड

<link href="assets/admin/css/bootstrap.css" rel="stylesheet" type="text/css"> 
<link href="assets/admin/css/bootstrap-responsive.css" rel="stylesheet" type="text/css"> 
<link href="assets/admin/css/style.css" rel="stylesheet" type="text/css"> 
<script src="assets/admin/js/jquery-1.9.1.min.js"></script> 
<script src="http://documentcloud.github.com/underscore/underscore-min.js"></script> 
<script src="http://documentcloud.github.com/backbone/backbone-min.js"></script> 
<script src="assets/admin/backbone/login.js"></script> 
<script src="assets/admin/js/bootstrap.min.js"></script> 

पर कैसा नज़र आता है (?)।

+0

क्रोम डेवलपर कंसोल में कोई त्रुटि है? –

+0

कोई नहीं, jQuery के माध्यम से सीधे कंसोल से एक क्लिक ईवेंट बाध्यकारी काम करता है। मैंने .on() आदि का उपयोग करने का प्रयास किया है .. उनमें से कोई भी काम नहीं करता है। बैकबोन बस विफल रहता है .. – SamV

+0

'

5

मैं jQuery के बिना एल स्थापित करने के लिए उस में काम करने के लिए किया था JSFiddle ... el: 'body'

1

जैसा कि अन्य उत्तर द्वारा समझाया गया है,के लिए काम करने के लिएआपको el संपत्ति का उपयोग करने की आवश्यकता है। el संपत्ति el संपत्ति में तत्व का संदर्भ देकर घटनाओं को पंजीकृत करने पर रीढ़ की हड्डी के लिए आवश्यक है। लेकिन कुछ मामलों में, एचटीएमएल अभी तक उत्पन्न नहीं हुआ है। उन मामलों में, आप el के बजाय tagName का उपयोग कर सकते हैं। tagNamedocument.createElement जैसे गतिशील रूप से तत्व उत्पन्न करने के लिए उपयोगी है।

-1

बैकबोन एल नोड व्यू कंट्रोलर के वर्कस्पेस को परिभाषित करता है।एल के अंदर केवल नोड्स प्रभावित होंगे, सुनने या बैकबोन प्रस्तुत करने से बदल दिया जाएगा विधि।

अन्य दृश्य नियंत्रकों के साथ छेड़छाड़ या अवांछित parenting से बचने के लिए आप अपने व्यू कंट्रोलर के साथ जितना संभव हो सके क्षेत्र को जितना संभव हो सके सेट करें।

कल्पना करें कि व्यू 1 में व्यू 2 का क्षेत्र शामिल है और इसके नोड्स पर प्रस्तुत किया गया है। यदि दृश्य नोड्स के संदर्भ रखता है तो व्यू 2 और काम नहीं करेगा, क्योंकि वे व्यू 1 से प्रतिपादन के माध्यम से टूटा जा सकता है।

तो दृश्य विचलन और इसके जोखिमों से अवगत रहें। बैकबोन एक लाइब्रेरी है, फ्रेमवर्क नहीं है और आपको बेवकूफ चीजों को करने से नहीं बचाएगा।

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