【问题标题】:Use regex in meteor click handler在流星点击处理程序中使用正则表达式
【发布时间】:2013-08-06 21:44:43
【问题描述】:

我正在尝试绑定与正则表达式匹配的所有元素的点击事件。在 jquery 中有一种方法可以做到这一点,但我不确定如何将代码转换为流星框架。这是我正在处理的代码:

https://github.com/dnprock/leaderboard/blob/master/leaderboard.js

$("input:regex(class, inc*)").click(function(e) {
    var tag = $(e.currentTarget);
    ...
});

我正在使用 jquery 绑定到 .inc* 类。 'click input.inc*' 有语法吗?

【问题讨论】:

    标签: jquery meteor


    【解决方案1】:

    只需将 CSS 选择器用于开头:

    'click input[class^="inc"]': function () {
    }
    

    编辑:

    包含:

    'click input[class*="inc"]': function () {
    }
    

    结尾:

    'click input[class$="inc"]': function () {
    }
    

    【讨论】:

      【解决方案2】:

      由于反应性,您需要将事件绑定到文档。

      $(document).on("click", "input:regex(class, inc*)", function(e) {
        var tag = $(e.currentTarget);
      });
      

      【讨论】:

        【解决方案3】:

        不能说 Meteor 是否支持这些类型的语法。但作为另一种解决方法,我建议您使用自定义 data 属性来指定要增加的分数点。见doc。可以在 jQuery 中使用 .data(key) 检索它们。

        例如将data-score 属性添加到<button> 标记为

        <input type="button" class="inc" data-score="5" value="Give 5 points" />
        <input type="button" class="inc" data-score="10" value="Give 10 points" />.
        

        并像这样使用这些属性:

        'click input.inc': function (ev) {
            Players.update(Session.get("selected_player"), {$inc: {score: $(ev.target).data('score')}});
         },
        

        【讨论】:

        • 我的要求是使用正则表达式附加到多个点击处理程序。所以这个解决方法是不相关的。
        猜你喜欢
        • 2011-01-21
        • 2018-03-29
        • 1970-01-01
        • 1970-01-01
        • 2012-09-14
        • 2014-04-06
        • 1970-01-01
        • 1970-01-01
        • 2013-11-16
        相关资源
        最近更新 更多