【问题标题】:How to handle custom jQuery events in Meteor?如何在 Meteor 中处理自定义 jQuery 事件?
【发布时间】:2014-11-19 07:00:12
【问题描述】:

在 Metor 0.3.5 中,当所有事件都是 jQuery 事件时,我可以使用 jQuery UI Draggable,然后使用 Metor event map 处理 drag & dragstop events

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

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

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

果然,上述技术似乎不再有效 - 我的 dragstop 处理程序现在根本没有被调用。

对于如何在 0.3.6 中实现相同效果的任何建议,我将不胜感激。

【问题讨论】:

  • 我仍在使用 0.3.5 但有同样的问题。还没有消息吗?
  • 我们还没有关于拖放或与 jQuery UI 插件互操作的故事,但我们会研究它!一种解决方法可能是使用 jQuery 而不是事件映射来绑定侦听器。
  • @dgreensp 绕过事件映射有什么缺点吗(除了必须手动连接带有 jQ​​uery 的 on 函数的侦听器)?

标签: events meteor


【解决方案1】:

如今,您可以简单地使用身体事件以“流星”方式完成此任务:

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

【讨论】:

  • 由于某种原因无法使其正常工作。这仍然是一个有效的答案吗?
  • 是的,它从 Meteor 1.2 开始工作。你有什么问题?
【解决方案2】:

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

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

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

【讨论】:

  • 不要 .on 仅在绑定到 document 时才对不存在的 DOM 元素起作用?所以$(document).on(events, selector, callback)?就像.live 在以前的 jQuery API 中一样?
猜你喜欢
  • 2014-12-19
  • 2018-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-04
  • 2011-04-17
  • 1970-01-01
  • 2020-03-25
相关资源
最近更新 更多