如何用false来停止脚本?

Pau*_*uck 2 javascript jquery event-handling

<input type="text" id="text">
<span id="click">click</span>


$("#click").click(function(){

    if($("#text").val().length < 1){
       alert("click is empty!");
       false;
    }

    alert("ok");
})
Run Code Online (Sandbox Code Playgroud)

现场: http ://jsfiddle.net/2Be8a/

为什么在这个例子中如果$ click length == 0我有警报点击是空的(这很好)和下一个警报ok(不好) - 为什么false不会停止脚本?我知道 - 我可以使用其他,但可能会停止虚假?

Jam*_*ill 8

您需要使用关键字return退出该功能.

$("#click").click(function(){

    if($("#text").val().length < 1){
       alert("click is empty!");
       return false; //Exits the function
    }

    //This will not execute if ($("#text").val().length < 1) == true
    alert("ok");
});
Run Code Online (Sandbox Code Playgroud)

附加信息

  • 您可能还想查看MDN文档return.
  • 正如评论中所建议的那样,添加一个else返回true的"最佳" .例:

    $("#click").click(function(){
    
       if($("#text").val().length < 1){
           alert("click is empty!");
           return false; //Exits the function
        }
        else {
            alert("ok");
            return true; //Exits the function
        }
    });
    
    Run Code Online (Sandbox Code Playgroud)

本质上,在jQuery处理程序中,return true与返回任何内容相同(jQuery不采取任何操作).return false相当于event.stopPropagation().

我建议阅读jQuery Events:Stop(Mis)使用Return False来更好地理解你使用时的实际情况return false.