2012-09-15 29 views
5

Trong một trong những quan điểm của tôi, tôi có:sự kiện Backbone không ràng buộc đến yếu tố dom

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

thì:

doSomething: function(){ 
    ... 
}, 

Đây là một cấu trúc lặp đi lặp lại trong quan điểm của tôi, nhưng vì một lý do 'doSomething 'chức năng không được kích hoạt bởi nhấp chuột trong chế độ xem này.

Khi nào các phần tử được ràng buộc với sự kiện?

Mọi mẹo gỡ lỗi này?

Trả lời

6

Ủy quyền diễn ra trong phương thức delegateEvents ở cuối trình tạo chế độ xem.

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

Hãy thử bằng tay gọi this.delegateEvents() bên render trước khi trở this. Bạn có thích hợp với this.el bên trong các phương pháp initialize hoặc render theo cách mà xương sống không mong đợi không?

+1

Hm, tôi vừa thử gọi this.delegateEvents() trước khi trả về kết xuất nhưng nó vẫn không ràng buộc các sự kiện. Ngoài ra, tôi không rối tung với this.el bên trong hoặc khởi tạo hoặc render. Điều duy nhất làm việc là gọi var = this; này. $ ('. tab'). on ('click', function() {that.doSomething();}); bên trong của khởi tạo, nhưng điều này cảm thấy như hình thức xấu ... – captDaylight

+0

Tôi đã không rối tung với $ el hoặc el, nhưng, thêm delegateEvents để render của tôi cố định ràng buộc sự kiện. – Duke

10

liên kết trở nên vớ vẩn ở đây: http://jsfiddle.net/7xRak/

Bỏ chọn nguyên nhân sự kiện này bị ràng buộc để phần tử gốc của view (this.el).

nếu là yếu tố class="tab" xem DOM của bạn có nghĩa this.el thì bạn nên kết hợp như

events : { 
    'click' : 'dosomething' 
} 

và cho các phần tử bên trong this.el như

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

thì bạn nên liên kết sự kiện như,

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

tài liệu: http://backbonejs.org/#View-delegateEvents

+2

Đây chính xác là những gì tôi đang hiển thị ở trên, tôi nhận thức rõ về mô hình này. Những gì tôi đang cố gắng để nói là mô hình này vì một số lý do không hoạt động, vì vậy một số cách để gỡ lỗi cho phái đoàn sự kiện là gì. – captDaylight

Các vấn đề liên quan