Javascript else if语句不起作用

use*_*629 1 javascript jquery

我有以下内容:

HTML

<div class="tab-pane" id="message">
      <textarea rows="4" cols="50" id="send_message" placeholder="Enter text ...">  </textarea>
      <a href="#message" class="btn btn-large btn-info"  data-toggle="tab">OK</a>
      <a href="#message" class="btn btn-large btn-info"  data-toggle="tab">Cancel</a>
Run Code Online (Sandbox Code Playgroud)

JavaScript的

$('#message').click(function(){
    if($("a", this).is(":contains(OK)")) {
        console.log("im in OK!!");
    } else if($("a", this).is(":contains(Cancel)"))  {
        console.log("im in cancel!!");
    }
});
Run Code Online (Sandbox Code Playgroud)

当我按下OK按钮并按预期执行时,这可以正常工作,但是当我点击取消时,OK中的代码仅执行.取消代码永远不会执行!我究竟做错了什么?

Roc*_*mat 9

this是事件绑定的元素.它始终是 #message,因此$("a", this)将始终是两个按钮. .is将扫描两个按钮,看看它们是否包含任何按钮"OK".第一个是,所以它总是进入第一个块.

您应该将事件绑定到按钮本身,而不是整个div.