0

嘿,我在重写代码时遇到了困难,但是单击显示时它不起作用。我该如何解决这个问题。代码工作打开 500 然后假设通过点击工作。但它不起作用。这是代码:

var timer;
$(".c_left").animate({ marginRight: "30px"}, "slow");
$(".c_right").animate({ marginRight: "215px"}, "slow", function () {
    timer = setTimeout(function () {
        $(".c_left").animate({ marginRight: "-155px"}, "slow");
        $(".c_right").animate({ marginRight: "30px"}, "slow");
    }, 500);
}); 
$(".icon-menu-2").click(function show() {
    $(".c_left").show.animate({ width: 200, marginRight: 30, display: 'toggle'}, 'slow');
    $(".c_right").show.animate({ marginRight:215, display:'toggle'}, 'slow', function () {
        clearTimeout(timer);
        });
}, function hide() {
    $(".c_left").animate({ marginRight: -155, display: 'toggle'}, 'slow');
    $(".c_right").animate({ marginRight:30, display:'toggle'}, 'slow');
    });

http://jsfiddle.net/jL5hU/

如何修复我的代码?

4

1 回答 1

1

正如bfvareto评论的那样.show(),它是一个函数,你不能只用它来调用它.show

你在这里也有奇怪的代码:.click(function show() {. 不太清楚你的意思,无论如何尝试我的代码建议......

var timer; var open;
$(".c_left").animate({ marginRight: "30px"}, "slow");
$(".c_right").animate({ marginRight: "215px"}, "slow", function () {
    timer = setTimeout(function () {
        $(".c_left").animate({ marginRight: "-155px"}, "slow");
        $(".c_right").animate({ marginRight: "30px"}, "slow");
        open = false;
    }, 500);
}); 
$(".icon-menu-2").click(function() {
    if(open){
        $(".c_left").animate({ marginRight: "-155px"}, "slow");
        $(".c_right").animate({ marginRight: "30px"}, "slow");
    } else {
        $(".c_left").animate({ marginRight: "30px"}, "slow");
        $(".c_right").animate({ marginRight: "215px"}, "slow");            
    }
    open = !open;
});

演示在这里

于 2013-10-13T00:45:02.347 回答