2013-04-12 25 views
9

Tôi không thể nhận sự kiện sau để đính kèm vào phần tử của mình.Kết nối sự kiện xương sống với bộ chọn nhiều lớp

events = { 
    "change .date-selector .date-range": "dateRangeSelectionChanged" 
} 

Điều này có được hỗ trợ ở tất cả trong Backbone.js không? Hoặc tôi đang sử dụng một cú pháp sai?

+0

cú pháp của bạn có vẻ tốt: http://backbonejs.org/#View-delegateEvents –

+1

Bạn có thể truy cập cửa sổ bảng điều khiển và sử dụng jQuery để chọn các phần tử của bạn hay không. $ (". date-selector .date-range") chiều dài này sẽ trả về ít nhất 1. Ngoài ra kiểm tra xem dateRangeSelectionChanged có đúng định dạng chính tả và trường hợp lạc đà hay không. Tôi cũng sẽ kiểm tra bằng cách sử dụng các công cụ phát triển trong IE hoặc FireBug trong FireFox và kiểm tra xem bạn có thấy bất kỳ thông báo lỗi nào không. – Kalpers

Trả lời

5

Để chọn theo nhiều lớp, bạn nên sử dụng:

events = { "change .date-selector.date-range": "dateRangeSelectionChanged" } 

Lưu ý không gian loại bỏ giữa lớp học

+0

Có, không gian thêm dường như là vấn đề. Cảm ơn. – orad

+0

Điều này là không cần thiết nữa. Các không gian được xử lý một cách thích hợp bởi Backbone. Tham khảo các ví dụ: http://backbonejs.org/#View-delegateEvents (Vấn đề thực tế đối với tôi là chế độ xem không được gắn với đối tượng DOM.) –

+1

Sử dụng câu trả lời @techvineet, vì câu trả lời này đã cũ. – hharnisc

0

Tôi nghĩ vấn đề của bạn là bạn có một tương đương với nhà điều hành mà bạn nên có ':'

App.Namespeace.BestViewEver = Backbone.View.extend({ 
    events : { 
    "change .date-selector .date-range": "dateRangeSelectionChanged" 
    } 
}); 
+0

Cảm ơn câu trả lời. Tôi quên đề cập rằng đây là mã TypeScript và dấu bằng được hợp lệ ở đó. Tôi không có nó trong ứng dụng của tôi vì vậy không biết vấn đề là gì nhưng bình luận của Kalpers là hữu ích. – orad

19

Bạn có thể tách các bộ chọn bằng dấu phẩy (',')

events: { "change .date-selector,.date-range": "dateRangeSelectionChanged" } 
+1

Mẹo hay. Tuy nhiên, tôi nghĩ rằng sẽ làm một logic 'OR' hơn' AND', để làm và bộ chọn 'AND' tách chúng bằng dấu chấm và không có dấu cách ở giữa. Vui lòng sửa tôi nếu tôi sai vì tôi chưa thử. – orad

+0

Orad: bạn đúng 100% – techvineet

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