尽管似乎已加载DOM(控制台中显示“就绪”),但在这种情况下为什么不触发click事件?

$(document).ready(function() {
    console.log("ready!");
});

$("p").click(function() {
    alert("You clicked on paragraph.");
});

我的理解是,因为click事件的代码是在文档就绪功能正确执行后执行的,所以它应该可以工作,但不能。仅在就绪功能中的花括号之间包含事件时,此功能才有效。

最佳答案

$(document).ready是异步的。您正在向其传递回调函数,以便它记录DOM已准备就绪的事实。但是,设置了click处理程序后,将立即执行ready绑定(bind)代码,而不是在执行回调后立即执行。

您只需要确保将绑定(bind)逻辑放入ready处理程序中即可。

10-02 20:57