【问题标题】:jQuery: Custom event doesn't runjQuery:自定义事件不运行
【发布时间】:2017-03-16 19:50:25
【问题描述】:

我目前遇到了一个 jQuery 问题,到目前为止我已经花费了几个小时,但我仍然无法弄清楚到底出了什么问题。 长话短说 - 我的代码是用 Play Framework 编写的记忆游戏的一部分。

jQuery 文件(简体):

$(document).ready(function () {
    $(".card-grid").on("myEvent", '.card', function (event) {
        $(".card-grid").flip({
            trigger: 'click'
        });
    });
    $("#triggerButton").click(function () {
        $(".card-grid").trigger("myEvent");
    });
});

解释:内存“卡片”在使用其他(工作)jQuery 代码初始加载后加载到页面上。一个 .card div 分别加载到一个 .card-grid div 中。我需要运行 jQuery-flip 插件的翻转方法才能工作。 jQuery 版本是 2.1.4(flip 不会在更新的版本上运行)。

如果我将第一种方法中的myEvent 替换为例如click,我只需单击其中一张卡片,函数就可以正常运行。

如果我创建另一个函数,让我们说

$(".test").on("myEvent", function (events) {
    $(this).text("Testtext").show();
});

并更改按钮的目标,文本在 .test 对象中显示得很好。

如果有人能告诉我出了什么问题,我将不胜感激。

【问题讨论】:

  • 可能是传播问题?您是否尝试过:$(".card-grid .card").trigger("myEvent"); 在您的第二种方法中?
  • 谢谢,辛苦了!但现在你欠我一个解释。我以为我只需要将事件“发送”给我在第一个方法中声明的一个侦听器?!
  • 在下面重新格式化...

标签: jquery html playframework jquery-2.0


【解决方案1】:

您的方法是正确的,但是,$(".card-grid").on("myEvent", '.card', funct... 的目标是所有名为 .card 的 div,它们是 .card-grid 的子元素。

因此,$(".card-grid .card").trigger("myEvent"); 为您的 $("#triggerButton").click... 函数提供了更好的目标。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-06
    • 1970-01-01
    • 2015-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多