0

基本的に、次のコードがあります。

$('selector').on('click',function(){
    //Do something here
});
$('selector').click(function(){
    //Does exact same thing.    
});

これらを組み合わせることは可能ですか?それとも、これらのバインディングの両方から呼び出す関数を作成するだけですか?

これが回答されている場合はお詫びします。提案された質問を確認しましたが、回答が見つかりませんでした。

4

4 に答える 4

1

$('selector').click()への単なるショートカットです$('selector').on('click')

于 2012-04-19T09:36:42.147 に答える
1
$('selector').on('click',function(){ //Do something here }); 

$('selector').click(function(){ //Does exact same thing.});

2 番目は 1 番目の短い形式です。いずれかを使用します。最初に提案された

于 2012-04-19T09:37:31.970 に答える
1

私が理解しているように、jQuery 1.7 の時点で.click()は、単に.on('click'). したがって、必要に応じて、直接使用して関数呼び出しを保存できます.on('click')

jQuery ソースを参照してください: https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.js

于 2012-04-19T09:38:46.483 に答える
-1

関数を作成して、両方のコールバック内から呼び出すことができます。

function doSomething()
{
   alert("something");
}

$('selector').on('click',function(){
    // Do some stuff...

    // Do what should be done by both functions
    doSomething();
});
$('otherselector').click(function(){
    // Do some other stuff...

    // Do what should be done by both functions
    doSomething();   
});

コメントに基づいて編集

両方のコールバックがまったく同じことを行う必要がある場合は、関数をコールバックとして渡すだけです。

function doSomething()
{
   alert("something");
}

$('selector').on('click',doSomething);
$('otherselector').click(doSomething);

ただし、その場合は、次のこともできます。

$("selector, otherselector").click(function()
{
   alert("something");
});
于 2012-04-19T09:38:53.067 に答える