只能.click一次

时间:2012-01-23 19:07:38

标签: javascript jquery

http://jsfiddle.net/cwUcM/

我已经浏览了所有似乎有类似标题的其他主题,但我没有找到任何东西=(

我添加了一个console.log,它也只在第一次点击后才会触发。

这应该是一个相当简单的问题。

为什么第一次点击后才会触发事件?

谢谢!

3 个答案:

答案 0 :(得分:3)

if条件应位于click处理程序内。试试这个。

$(document).ready(function() {
    $('#menu').click(function() {
        if($("#openCloseIdentifier").is(":visible")){
            $("#menu").animate({
                marginTop: "2%"
            }, 500);
            $("#openCloseIdentifier").hide();
        }
        else{
            $("#menu").animate({
                marginLeft: "5%"
            }, 500);
            $("#openCloseIdentifier").show();
        }
    });
});

<强> Demo

答案 1 :(得分:2)

您只是在第一次加载时调用if语句。

之后,点击事件已经注册,只做一件事。将.click处理程序移到if语句之外。

请参阅:http://jsfiddle.net/SQxYP/

答案 2 :(得分:1)

其他点击有效,您只是看不到结果。

$("#menu").animate({
     marginTop: "2%"
}, 500);

更改为:

$("#menu").animate({
      marginTop: "+=2%"  <--- you need at ADD 2%, not set it to 2%!
}, 500);