如何将参数放入JQuery.Event数据属性并触发它?

如何将参数放入JQuery.Event数据属性并触发它?,jquery,events,jquery-trigger,Jquery,Events,Jquery Trigger,目标是通过event.data传递参数,下面是我测试它的完整示例: 我不知道为什么如果一个事件对象有一个数据属性,我们就不能访问它 但有了“.on”功能,它就工作了!:-( 有人知道怎么做吗?:-) 回答 在所有文档和测试之后,我决定使用以下方法: $el.trigger('click.NGB', [ {example : '8'} ] ); 谢谢大家 如果您的目标是随事件一起发送额外的数据,那么您可以使用额外的参数来发送和接收事件: 接收: // Note discrete param --

目标是通过event.data传递参数,下面是我测试它的完整示例:

我不知道为什么如果一个事件对象有一个数据属性,我们就不能访问它

但有了“.on”功能,它就工作了!:-(

有人知道怎么做吗?:-)

回答

在所有文档和测试之后,我决定使用以下方法:

$el.trigger('click.NGB', [ {example : '8'} ] );

谢谢大家

如果您的目标是随事件一起发送额外的数据,那么您可以使用额外的参数来发送和接收事件:

接收:

// Note discrete param --------------v
$("#foo").on("whatever", function(e, param) {
  display("param: " + JSON.stringify(param));
});
发送:

// Note discrete param -------v
$("#foo").trigger("whatever", 42);

固定在此处-


这是一个重复的问题

这个问题的“简短回答”应该很好地回答了你的问题

trigger()能否将数据传递给事件处理程序?是(作为附加参数)

trigger()是否可以直接将数据传递到event.data对象?否(只有on()会执行此操作)


在这里看一看,创建时数据似乎放在
事件
对象中,但当数据到达处理程序时,它就会丢失。说明:以下属性也会复制到事件对象中,尽管它们的一些值可能根据事件而未定义:
数据
在该列表中。@Barmar谢谢!但是为什么在函数“.on”中可以,但在“.trigger”中不可以?显然,
数据
总是包含作为
.on()
的额外数据参数提供的任何内容。如果您不给出该参数,它将被视为给出未定义的
。这将覆盖在创建
事件
对象时指定的任何内容。这是我的示例!;-)是的,这就是你想要的,对吗?你的代码无效我的代码有效。。。查看“1->undefined”,示例值为1,但数据未定义!我的目标是使用事件的属性数据!!谢谢有时堆栈是无限的
// Note discrete param --------------v
$("#foo").on("whatever", function(e, param) {
  display("param: " + JSON.stringify(param));
});
// Note discrete param -------v
$("#foo").trigger("whatever", 42);
$('#button').on('click', function (e) {
    e.stopPropagation();
    e.preventDefault();

    $el = $('#response');

    $el.trigger( $.Event('click.NGB', { example: '1' }));
});

$('#response').on('click.NGB', function () {
    $ev = arguments[0];
    example = arguments[1];
    $this = $(this);
    $this.find('pre').append('value is === ' + arguments[0].example);
});