为什么需要在jquery中为.click函数设置"return false"语句

dav*_*ave 3 javascript jquery click

例:

$("#testdiv").click( function( )
 {
     $("#testdiv2").show( "slow" );
     return false;  // why is this statement required?
 } );
Run Code Online (Sandbox Code Playgroud)

hun*_*ter 6

return false; 将阻止锚标记执行其默认操作

一个jQuery替代方案将是 preventDefault()

$("#testdiv").click(function(e) {
    e.preventDefault();
    $("#testdiv2").show("slow");
});
Run Code Online (Sandbox Code Playgroud)


Aki*_*nos 5

在事件处理中返回false会做两件事:

  1. 如果你有一个锚标记,它将阻止锚点跟随链接

  2. 它将停止事件传播(冒泡).例如

    < div id='outer' onclick="alert('hello')" >  
        < div id='inner'>
            <!-- Your stuff -->
        < /div>
    < /div>
    
    Run Code Online (Sandbox Code Playgroud)

    $("#inner").click(function(event){
        // Your code
        return false
    })
    
    Run Code Online (Sandbox Code Playgroud)

如果你的函数返回false,alert("hello")当有人点击内部div时,不会调用它.返回false与调用两者相同

event.preventDefault();
event.stopPropagation();
Run Code Online (Sandbox Code Playgroud)

一句警告,此行为仅适用于jquery

event.preventDefault()与return false

资料来源:John Resig