1

私はこのようなことをしたいです

$(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イベントをトリガーしinputたいだけでなく、トリガー時にオブジェクトを渡したいです{aField:'my data'}


とにかく、すでに自分でそれを手に入れました。object解決策は、ハンドラーにパラメーターをもう 1 つ追加することでした。

$(document).on('keyup','.otherclass',function(e,object){
    console.log(object.aField); // this printed 'my data'
});
4

2 に答える 2

0

これが答えです

$(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'
});

これは、トリガーを介してイベントに引数を渡す正しい方法です。完全なドキュメントはhttp://api.jquery.com/trigger/で入手できます。

于 2013-03-29T17:09:10.387 に答える
0

更新:何かをトリガーしようとする代わりに、両方のインスタンスに共通のハンドラーを使用しないでください。

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'));
});
于 2013-03-29T16:44:41.717 に答える