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

7
在 Metor 0.3.5 版本中,当所有事件都是 jQuery 事件时,我可以使用 jQuery UI Draggable ,然后使用 Metor 的 事件映射 来处理 dragdragstop 事件
Template.game.events['dragstop .card'] = function (e) {
    //stuff
};

但我在 Meteor 邮件列表中读到了这个内容:
在 0.3.6 中,事件映射不再依赖 jQuery。
确实,上述技术似乎不再起作用 - 现在我的 dragstop 处理程序根本没有被调用。
我非常感谢任何有关如何在 0.3.6 中实现相同效果的建议。

我仍然使用0.3.5版本,但是遇到了同样的问题。还没有任何消息吗? - Michel Löhr
我们目前还没有关于拖放或与jQuery UI插件的互操作性的故事,但我们会研究它!一个解决方法可能是使用jQuery绑定监听器而不是事件映射。 - dgreensp
@dgreensp 除了需要使用 jQuery 的 on 函数手动连接监听器之外,绕过事件映射还有什么缺点吗? - Emmett
2个回答

5
现在,你可以使用body事件以“Meteor”的方式完成这个任务:
Template.body.events({
    'dragstop #somedivid': function(e) {
        // Do stuff
    }
});

无法让它正常工作,有什么原因吗?这仍然是一个有效的答案吗? - Billybobbonnet
是的,在Meteor 1.2中它可以工作。你遇到了什么问题? - occasl

3

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

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

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


2
难道.on只有在绑定在document元素上时才能在不存在的DOM元素上使用吗?所以是$(document).on(events, selector, callback)? 就像以前jQuery API中的.live一样? - Mitar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接