【问题标题】:How to trigger custom event with jQuery?如何使用 jQuery 触发自定义事件?
【发布时间】:2013-06-16 16:31:39
【问题描述】:

我在 jQuery 的 ready 方法中将自定义事件处理程序附加到 body
之后我立即trigger 自定义事件,但似乎什么也没发生。

$(function(){
    $("body").on("test", function(){ alert("test triggered"); }
    $("body").trigger("test");
}

【问题讨论】:

  • .on - 将一个或多个事件的事件处理函数附加到选定元素。这里有什么活动?
  • @dementic 请不要更改编辑中的代码
  • @zod "test",这是一个自定义事件。
  • 将问题回滚到原始状态以反映根本问题

标签: jquery event-handling jquery-events custom-events


【解决方案1】:

您的代码格式似乎不正确。检查您的调试控制台以确认。

你可以试试这个:

$(function(){
    $("body").on("test", function(){
        alert("test triggered");
    });
    $("body").trigger("test");
}

【讨论】:

    【解决方案2】:

    首先你有语法错误

    $(function(){
        $("body").on("test", function(){
            alert("test triggered");
        });  < ---- Missing this
        $("body").trigger("test");
    });
    

    其次,您无法从控制台触发事件,因为$(function() {}); 形成了一个闭包,您将无法访问其中的任何方法

    要让它像您期望的那样工作,请在您的脚本文件中放置一个调试点,然后尝试触发该事件。它现在可以工作,因为事件在范围内。

    【讨论】:

    • 当然可以。在控制台中执行$("body").trigger("test"); 将起作用。为什么它不起作用? $ 是一个全局变量。
    • 我对语法错误表示歉意。不知道事件侦听器不会听到在其关闭之外发生的事件。谢谢!
    猜你喜欢
    • 2015-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-31
    • 2012-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多