基本上click()
事件受到:active
状态移动对象的干扰。
在这里阅读更多。
顺便说一句,您的解决方案与那个答案有点不同;
从@cdanisor提出的解决方案开始,您需要使用mouseup()
(为了保留按钮的移动效果并且仅在释放鼠标时触发事件)
演示:http: //jsfiddle.net/kEQjU/
<div id="alertMe">
<div class="button red"> test</div>
</div>
$("#alertMe").mouseup(function() {
alert("Handler for .click() called.");
});
编辑
显然,您可以通过使用 abutton
而不是 a来保持键盘兼容性div
,并将相同的函数绑定到keyup
事件:
演示:http: //jsfiddle.net/kEQjU/1/
<div id="alertMe">
<input type="button" class="button red" value="test" />
</div>
$("#alertMe").mouseup(function() {
alert("Handler for .click() called.");
});
$("#alertMe").keyup(function() {
alert("Handler for .click() called.");
});