2012-05-18 23 views
7

Trong Metor 0.3.5, khi tất cả các sự kiện đã jQuery sự kiện, tôi đã có thể sử dụng sử dụng jQuery UI Draggable và sau đó xử lý các drag & dragstop events sử dụng một Metor event map:Cách xử lý các sự kiện jQuery tùy chỉnh trong Meteor?

Template.game.events['dragstop .card'] = function (e) { 
    //stuff 
}; 

Nhưng tôi chỉ đọc trong danh sách gửi thư Meteor:

Trong 0.3.6, sự kiện các bản đồ về không còn phụ thuộc vào jQuery

Và chắc chắn đủ, các kỹ thuật nói trên không còn có vẻ làm việc – Trình xử lý dragstop của tôi hiện không được gọi.

Tôi đánh giá rất cao bất kỳ lời khuyên nào về cách đạt được hiệu quả tương tự trong 0.3.6.

+0

tôi vẫn còn trên 0.3.5 nhưng có cùng một vấn đề. Chưa có tin gì mới? –

+0

Chúng tôi chưa có câu chuyện để kéo và thả hoặc tương tác với các plugin jQuery UI, nhưng chúng tôi sẽ xem xét nó! Cách giải quyết có thể là ràng buộc người nghe bằng cách sử dụng jQuery thay vì bản đồ sự kiện. – dgreensp

+0

@dgreensp Có bất kỳ bất lợi nào khi bỏ qua các bản đồ sự kiện (ngoài việc phải treo các trình nghe theo cách thủ công với chức năng ['on'] của jQuery (http://api.jquery.com/on/))? – Emmett

Trả lời

3

sự kiện Tuỳ chỉnh jQuery thể bị ràng buộc với đồng bằng cũ jQuery, bỏ qua event maps hoàn toàn:

$(function() { 
    $('body').on('dragstop', '.card', function (e) { 
     //stuff 
    }); 
}); 

Hãy nhớ sử dụng on chức năng của jQuery để ràng buộc các trình xử lý, vì các yếu tố mẫu không nhất thiết phải bao gồm trong DOM tại mọi thời điểm .

+2

Không '.on' hoạt động cho các phần tử DOM không tồn tại ngay khi nó được liên kết trên' tài liệu'? Vì vậy, '$ (tài liệu) .on (sự kiện, chọn, gọi lại)'? Giống như '.live' nằm trong API jQuery trước đó? – Mitar

5

Ngày nay, bạn chỉ có thể sử dụng các sự kiện cơ thể để thực hiện điều này là "Meteor" cách:

Template.body.events({ 
    'dragstop #somedivid': function(e) { 
     // Do stuff 
    } 
}); 
+0

Cảm ơn bạn rất nhiều! – Vinod

+0

Và không thể làm việc này vì lý do nào đó. Đó vẫn là câu trả lời hợp lệ sao? – Billybobbonnet

+0

Vâng, nó hoạt động như Meteor 1.2. Bạn đang gặp phải vấn đề gì? – occasl

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