我正在尝试创建一个通用的“锁定”类,它会阻止用户在加载块时与任何元素(锚点、按钮等)进行交互。没有什么真正花哨或安全的,只是简单的加载锁。
我正在尝试检测对具有 class="locked" 的元素的点击并通过 return false; 拒绝点击。我的问题是,即使在元素完成加载并删除“锁定”类之后,jQuery 仍然检测到该元素具有它。
代码在这里:
HTML
<div id="block"></div>
CSS
#block {
background-color:#ccc;
width:300px;
height:100px;
}
jQuery
$(document).ready(function () {
$("#block").addClass("locked");
$("#block").html("locked");
setTimeout(function () {
$("#block").removeClass("locked");
$("#block").html("unlocked !");
}, 4000);
$(".locked").click(function () {
alert("locked! denying click event");
return false;
});
});
可以看到 jsFiddle 中发生了什么:(打开开发工具可以看到 4 秒后类已经被移除)
这是一个错误还是我做错了什么(不推荐)?
编辑:感谢您提供有用的答案!