0

2つの異なるセレクターを処理するために1つのコードに結合したい2つのセレクターがあります。

私の現在のコードは次のとおりです。

var button_b=$("#button_b");
$('#button_a', button_b).on("click, dblclick", function(){
//do stuff
});

ただし、これは機能していないようです。

4

3 に答える 3

1

私はまだ2つの別々のセレクターに言及し、それらを1行のコードで別々のイベントにバインドする方法を探しています

次の状況を考えてみましょう

$('input:text#voucher_id, button.nav').bind('click keydown', function(e){ // find nav functions to keydown events on #voucher_id and nav buttons
    reload(e,'<?php echo $aVeryLongUrlDynamicallyGenerated; ?>', $('#voucher_id').val(),$('#doctype').val());
});

コードから明らかなように、同じ関数をボタンとkeydowntextFieldをクリックするようにバインドしたいと思います#voucher_idが、上記のアプローチを使用することで、何が起こっているかは明らかでありkeydown、ボタンで同じ関数をアクティブにしています。望ましくない振る舞い。

これを回避し、選択した 2 つのコードを結合する方法。

于 2012-11-15T07:33:15.857 に答える
0

その場合は、これらの要素に対して同じハンドラーと異なるイベントを使用しないのはなぜですか。

$("#button_a").on("click", function(){
     myFunc(this);
});

$("button_b").on("dblclick", function(){
     myFunc(this);
});

function myFunc(elem){
    // Your code here
}
于 2012-11-02T08:25:09.527 に答える
0

セレクターの組み合わせ ( @mike で言及) は、セレクターの値をカンマで区切るだけです$("#button_a,#button_b")。イベントはスペースで区切ることができます -

var selector = '#bar';
$("#foo,"+selector).on("click dblclick", handler);

これら 2 つのイベントを同じ要素でキャッチするのは困難です。ダブルクリックの最初のクリックが取得され、ハンドラーが呼び出されます。シングルクリックでハンドラーが呼び出される前に、ダブルクリックをスクイーズすることはできません。

ここでの私のライブ デモでは、同じ手法を使用していますがmouseenterclickイベントを使用しています。

デモ

于 2012-11-02T06:42:42.873 に答える