0

jQueryでチェーンをジャンプまたはエスケープする方法。

例えば。

$("h3").click(function(){
    //doSomething
    if(~~)  
        // in this case, escape chain(A and B function will be not work)
    else if(~~) 
        // in this case, jump to B case(A function will be not work)
})
.bind(A, function(){
    do A case.
})
.bind(B, function(){
    do B case.
});

出来ますか?

4

3 に答える 3

1

クリックハンドラーのコードは、クリックが実際に発生するまで実行されませんが、バインド呼び出しは、クリックハンドラーが適用された直後に処理されます。必要なのは、さまざまなハンドラーの条件付き実行のようです。これは、元のクリックハンドラーで要素にデータを設定し、後続のハンドラーで状態を確認することで実現できますが、スタンドアロン関数として作成し、必要に応じてシングルクリックハンドラーから呼び出す方がよいでしょう。

于 2011-10-05T02:46:36.873 に答える
0

AとBが実際には単なる関数であり、クリックするとそのうちの1つを呼び出す必要がある場合は、次のようにします。

function A()
{
  ...
}
function B()
{
  ...
}

$("h3").click(function(){
    //doSomething
    if(~~)  
        A();
    else if(~~) 
        B();
})

しかし、あなたの質問は完全には明確ではありません。

于 2011-10-05T02:40:52.670 に答える
0

チェーンを終了するには、jQuery.end()メソッドを使用できます。ただし、この場合、条件があり、条件ごとに2つの異なるコードを実行する必要があります。$(this) したがって、条件の下でjQueryを使用して、クリックされたものを参照し、条件に基づいてコードを実行できます。

$("h3").click(function(){
    //doSomething
    if(~~)  
        // in this case, escape chain(A and B function will be not work)
        $(this).bind(A, function(){
            //do A case.
         })
    else if(~~) 
        // in this case, jump to B case(A function will be not work)
       $(this).bind(B, function(){
          //do B case.
       });
});
于 2011-10-05T02:55:41.310 に答える