如何在Meteor中处理自定义jQuery事件?

Emm*_*ett 7 events meteor

在Metor 0.3.5中,当所有事件都是jQuery事件时,我能够使用jQuery UI Draggable,然后使用Metor 事件映射处理drag&dragstopevents:

Template.game.events['dragstop .card'] = function (e) {
    //stuff
};
Run Code Online (Sandbox Code Playgroud)

但我刚刚在Meteor邮件列表中看到了这个:

在0.3.6中,事件映射不再依赖于jQuery

果然,上面的技术似乎不再起作用 - 我的dragstop处理程序现在根本没有被调用.

我非常感谢有关如何在0.3.6中实现相同效果的任何建议.

occ*_*asl 5

如今,您可以简单地使用身体事件来完成"Meteor"方式:

Template.body.events({
    'dragstop #somedivid': function(e) {
        // Do stuff
    }
});
Run Code Online (Sandbox Code Playgroud)


Emm*_*ett 3

自定义 jQuery 事件可以与普通的旧 jQuery 绑定,完全绕过事件映射

$(function () {
    $('body').on('dragstop', '.card', function (e) {
        //stuff
    });
});
Run Code Online (Sandbox Code Playgroud)

请记住使用 jQuery 的on函数来绑定处理程序,因为模板元素不一定始终包含在 DOM 中。

  • 当“.on”绑定在“document”上时,它不适用于不存在的 DOM 元素吗?那么`$(document).on(events,selector,callback)`?就像以前的 jQuery API 中的“.live”一样? (2认同)