0

$('#foo').click() と $('#bar').change() を同じ関数で組み合わせるにはどうすればよいですか? #bar はクリックによってトリガーされず、 #foo は変更によってトリガーされない場合があります。

仮説的に:

$('#foo').click() + $('#bar').change() (function{
  //...
});

これは私が探しているものではありません:

function foobar() {
  // ...
}
$('#foo').click(function{
  foobar();
});
$('#bar').change(function{
  foobar();
});

関連する HTML:

<select id="bar">
  <option>dummy1</option>
  <option>dummy2</option>
</select>
<button id="foo">foo</button>
4

2 に答える 2

5

clickこれは、オン#barまたはchangeオンを望まない場合の唯一の方法です#foo

$( '#foo, #bar' ).on( 'click change',  function ( event ) {
    if( ( event.type == 'click' && event.target.id == 'foo' )
        || ( event.type == 'change' && event.target.id == 'bar' ) ) {

        //process event here
    };
} );

あなたが望んでいないとリストした方法がそれを行うためのより良い方法だと思いますが。どちらが読みやすく、理解しやすいですか?:

function foobar() {
    // ...
};

$( '#foo' ).click( foobar );
$( '#bar' ).change( foobar );
于 2013-03-03T03:48:07.743 に答える
0
$(":input").click(function(){
    alert($(this).attr('id'));
    foobar(); //you can pass here the id as parameter to your function
})

http://jsfiddle.net/5vgKm/

于 2013-03-03T03:53:43.100 に答える