1

是否有可能使$sliderPane.click();位于最后一条else语句中的哪个运行第一if条语句?

任何聪明的想法都会非常感谢。

$tabTwitter.on('click', function () {

    if ( twitterOpen == true ) {

        twitterOpen = false;
        $panelTwitter.fadeOut(500); 

        $sliderPane.animate({
            "left" : 0
        }, 500, function() {
            $sliderPane.removeAttr('style');                     
        });

    } else if ( facebookOpen == true ) {

        facebookOpen = false;
        $panelFacebook.fadeOut(500); 

        twitterOpen = true;
        $panelTwitter.fadeIn(500);

    } else {

        twitterOpen = true;
        $panelTwitter.fadeIn(500);

        $sliderPane.css({
            "left":0,"cursor":"pointer"
        }).animate({
            "left" : "-490px"
        }, 500, function() {
            $('body,html').animate({
                scrollTop: headerHeight - 69
            }, 800);
            return false;
        }).click();                 

    }

});
4

3 回答 3

1
var clickHandler = function () {

    if ( twitterOpen == true ) {

        twitterOpen = false;
        $panelTwitter.fadeOut(500); 

        $sliderPane.animate({
            "left" : 0
        }, 500, function() {
            $sliderPane.removeAttr('style');                     
        });

    } else if ( facebookOpen == true ) {

        facebookOpen = false;
        $panelFacebook.fadeOut(500); 

        twitterOpen = true;
        $panelTwitter.fadeIn(500);

    } else {

        twitterOpen = true;
        $panelTwitter.fadeIn(500);

        $sliderPane.css({
            "left":0,"cursor":"pointer"
        }).animate({
            "left" : "-490px"
        }, 500, function() {
            $('body,html').animate({
                scrollTop: headerHeight - 69
            }, 800);
            return false;
        }).click(clickHandler);                 

    }

};

$tabTwitter.on('click', clickHandler);
于 2012-06-13T23:49:16.237 回答
0

分成命名函数。先调用 if 函数。完毕。

于 2012-06-13T23:46:56.813 回答
0

您总是可以尝试使用触发器,因为“if”是代码块中的第一个语句。

于 2012-06-13T23:43:50.140 回答