2009-06-12 11 views
3

基本的には、関数Aをすべての入力にバインドしたいと思います。このような何か:2つの別々の関数を同じイベントにバインドすることは可能ですか?

$('input').bind('change', function() { bla bla bla }); 

し、後で私はこのような他に、別の何かをバインドしたいと思います:

$('#inputName').bind('change', function() { do additional processing..}); 

が可能ということですか?それは動作しますか?構文がありませんか?それは実際にうまくいくのですか(私は他の場所にバグがあり、それらのうちの1つがバインドされないことを意味します)?

+1

私はこれを100%確信していないので、私は答えたくありません。しかし、私は2番目に来るものは何でも勝つだろうと確信しています。したがって、もしあなたが ''を持っていれば、オリジナルの処理ではなく、変更がonChangeで起こります。 jqueryプラグインは、特定のイベントの特定のクラスのすべてのアイテムにその機能をバインドすることがあるため、個人的には悩まされます。私はまた、何か別のことをするためにそのイベントを使いたいと思うし、うまくいきません。 – Apreche

+2

重複:@stackoverflow.com/questions/702352/many-event-handles-to-one-event-jquery –

+0

@Apreche:jQueryは、単一のイベントにバインドされた複数のハンドラをサポートしています。しかし、どのハンドラも自由に任意の時点で処理を停止することができますので、そこで競合する可能性があります。 – Shog9

答えて

0

あなたのコードでは、1つは入力され、もう1つのinputNameは入力ミスですか?

検索すると、ここにsimilar questionがあります。

$(document).ready(function() { 
    $("input").change(function() { 
    console.log("function1"); 
    }); 

    $("input").change(function() { 
    console.log("function2"); 
    }); 
}); 
+0

タイプミスではなく、分化を示す最も簡単な方法 – Jared

0

(すなわち、あなたが同じオブジェクトに関数をバインドしようとしている)に解決される上記と仮定して、はい、あなたは同じものに複数のイベントハンドラをバインドすることができます。

あなたの人生をより楽にするために、同じ名前空間を調べてください(同じイベントのイベントハンドラをグループ化することができます)。

3

あなたの質問に対する短い答えはYESです。

#inputNameの変更イベントに追加の機能をバインドする場合は、コードサンプルが機能するはずです。

あなたはそう...

$('#inputName').unbind('change'); 

が、注意するような任意の新しいイベントハンドラを再バインドする前に、変更イベントのすべてのハンドラをバインド解除することができ、イベントを処理する関数を変更したい場合は...ワット/ oこれを試してみると、私はどちらの側面にも不安がある。

1

両方を呼び出す関数を作成してから、この新しい関数をイベントにバインドするのはなぜですか?

0

両方をバインドするのに問題ありません。それが少し面白いところは、falseを返すことによってデフォルトの動作を妨害しようとしているときです。バインドされた関数は、のそれぞれがを実行するのを防ぐことはできませんが、親要素のイベントハンドラが実行されないようにすることができます。

関連する問題