jQuery触发器-如何向处理程序传递有关如何触发事件的信息

jQuery触发器-如何向处理程序传递有关如何触发事件的信息,jquery,javascript-events,event-handling,Jquery,Javascript Events,Event Handling,我想做这样的事 $(document).on('click','.someclass',function(){ $('.otherclass').trigger('keyup',{aField:'my data'}); }); $(document).on('keyup','.otherclass',function(e){ console.log(e.aField); // and to have printed 'my data' }); 我想知道是否有一种方法可以做类似的事

我想做这样的事

$(document).on('click','.someclass',function(){
   $('.otherclass').trigger('keyup',{aField:'my data'});
});

$(document).on('keyup','.otherclass',function(e){
   console.log(e.aField); // and to have printed 'my data'
});
我想知道是否有一种方法可以做类似的事情,但是可以起作用。因为那样就不行了


也许这个例子不太清楚:当我点击一个链接时,我想在
输入上触发
keyup
事件,但我想在触发它时传递一个对象
{aField:'my data'}


反正我自己已经拿到了。 解决方案是在处理程序中再添加一个参数
object

$(document).on('keyup','.otherclass',function(e,object){
    console.log(object.aField); // this printed 'my data'
});
更新:为什么不为这两个实例使用一个公共处理程序,而不是尝试触发一些东西呢

function handleInputAction(data) {
  console.log(data.aField)
}

$(document).on('click','.someclass',function(){
   handleInputAction({aField:'my data'});
});

$(document).on('keyup','.otherclass',function(e){
   handleInputAction(e.aField);
});
使用
$(this)
或事件目标

$(document).on('keyup','.otherclass',function(e){
  console.log($(this).attr('aField'));
  // or
  console.log(e.currentTarget.aField);
  // or
  console.log($(e.currentTarget).attr('aField'));
});
答案是这样的

$(document).on('click','.someclass',function(){
   $('.otherclass').trigger('keyup',{aField:'my data'});
});

$(document).on('keyup','.otherclass',function(e, obj){
   console.log(obj.afield); // and to have printed 'my data'
});
这是通过触发器将参数传递给事件的正确方法,此处提供了完整的文档

事件目标是“输入”,但我需要手动访问触发事件时传递的对象{aField:'my data'。