Passing eventobejct in jquery

Passing eventobejct in jquery

本文关键字:jquery in eventobejct Passing      更新时间:2023-09-26

我想传递带有触发函数的事件对象,意味着当我手动触发任何事件时说:

 $(".test").bind({ click : Testing });
 $('.test').trigger("click");
 function Testing(e)
 {
 }

当通过鼠标单击调用函数测试时,参数 e 包含事件对象,因此当我们手动触发它时,我想要同样的事情。当我们手动触发任何事件时,我们可以传递事件对象吗,这可能吗?

正如 gdoron 指出的 (+1),jQuery 将为你提供事件对象。但是如果你愿意,你可以显式地创建它,用jQuery无法为你填写的信息来填充它。您可以创建一个Event对象并将其传递到 trigger 中。

下面是使用默认事件对象和创建自己的事件对象的示例: 实时复制 | 源

jQuery(function($) {
  $(".test").click(function(e) {
    display("Received click on target");
    display("typeof e = " + typeof e);
    if (e) {
      display("e.type = " + e.type);
      if (e.type === "click") {
        display("Coords: (" + e.pageX + "," + e.pageY + ")");
      }
    }
  });
  //Create a new jQuery.Event object without the "new" operator.
  var e = $.Event("click");
  // Fill in more info
  e.pageX = 42;
  e.pageY = 27;
  // Trigger an artificial click event
  display("Issuing a click via <code>$('.test').trigger('click')</code>");
  $('.test').trigger("click");
  // Trigger an artificial click event
  display("Issuing a click creating our own event object with more info on it.");
  $('.test').trigger(e);
  function display(msg) {
    $("<p>").html(msg).appendTo(document.body);
  }
});

你不需要做任何事情,当你触发一个事件时,Event对象也已经存在了。

事件

对象始终作为第一个参数传递给事件处理程序
...
...

trigger文档

现场演示