Javascript jQuery函数正在重复调用

Javascript jQuery函数正在重复调用,javascript,jquery,Javascript,Jquery,我使用下面的代码来隐藏和显示表单 $(document).ready(function() { $("#form_before_launch").click(function(){ $(this).animate({height:"300px" ,width:"400px"}); $(this).children("p").animate({fontSize:"35px"}); $("#form").delay(500).fadeIn();

我使用下面的代码来隐藏和显示表单

$(document).ready(function() {
    $("#form_before_launch").click(function(){
        $(this).animate({height:"300px" ,width:"400px"});
        $(this).children("p").animate({fontSize:"35px"});
        $("#form").delay(500).fadeIn();
    })

    $("#close").click(function(){
        $(this).animate({height:"0px" ,width:"0px"});
    })
});

下面的代码用于启动前的
表单
,但一旦我单击id为“close”的div元素,就会调用
\close
函数,然后再次调用启动前的
\form

尝试将“e”传递给close click事件,然后调用
e.stopPropagation()
这样事件就不会冒泡出来,由封装的form\u before\u launch元素处理。

如果元素在
form\u before\u launch
中,那么事件当然会传播到两个处理程序

$("#close").click(function(){
    $(this).animate({height:"0px" ,width:"0px"});
    return false;
})

close元素在form\u before\u launch元素中吗?@Taplar:是的,它在同一个元素中是的,这就是单击事件的方式work@Orpheus呃,我觉得你错了。至少对于jQuery绑定的事件。查找文档。@Orpheus返回false既可以防止默认值,也可以阻止复制。“从事件处理程序返回false将自动调用
事件。stopPropagation()
事件。preventDefault()
”使用了一些粗略的旧信息。我的错。无论如何,在事件参数上故意调用它以使其完全明确可能是有用的。