如何在jQuery中跳转或转义链

时间:2011-10-05 02:38:16

标签: jquery chain

如何在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.
});

有可能吗?

3 个答案:

答案 0 :(得分:1)

点击处理程序中的代码在实际发生单击之前不会执行,而在应用单击处理程序之后立即处理绑定调用。看起来你想要的是各种处理程序的条件执行。您可以通过在原始单击处理程序中设置元素数据,然后检查后续处理程序中的状态来实现这一点,但最好将它们创建为独立函数,并根据需要从单击处理程序中调用它们。 / p>

答案 1 :(得分:0)

如果A和B实际上只是函数,其中一个应该在点击时调用,请执行:

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

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

但是,你的问题并不完全清楚。

答案 2 :(得分:0)

要结束您的链,您可以使用jQuery .end()方法;但在这种情况下,您有一个条件,并且应为每个条件运行两个不同的代码。因此,您可以在条件下使用jQuery $(this) 来引用所点击的内容并根据您的条件运行代码:

$("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.
       });
});