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

要结束你的链,你可以使用jQuery.end()方法;但是在这种情况下,您有一个条件,并且应该为每个条件运行两个不同的代码。$(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 回答
0

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

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

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

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

于 2011-10-05T02:40:52.670 回答