我有以下内容:
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>
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!!");
}
});
当我点击 OK 按钮并按预期执行时,这工作正常,但是当我点击取消时,OK 中的代码仅被执行。取消代码永远不会执行!我做错了什么?
最佳答案
this
是事件绑定(bind)到的元素。它是总是 #message
,因此$("a", this)
将始终是两个按钮。 .is
将扫描两个按钮以查看它们是否包含 "OK"
。第一个是,所以它总是转到第一个 block 。
您应该将事件绑定(bind)到按钮本身,而不是整个 div。
关于Javascript else if 语句不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18193801/