javascript - 没有 document.ready 功能不起作用

标签 javascript jquery

document.ready确实有必要。这个问题已经被问过无数次了。

此代码片段与 document.ready 配合使用并且完美运行

<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
  $("#p1").mouseenter(function(){
    alert("You entered p1!");
  });
});
</script>
</head>
<body>

<p id="p1">Enter this paragraph.</p>

</body>
</html>

但是,如果我用这个替换脚本标签内容。

  $("#p1").mouseenter(function(){
    alert("You entered p1!");
  });

它不再起作用了。但是,如果参数是鼠标输入时文档尚未准备好。我在尝试之前等了几分钟,但仍然不起作用。有什么我错过的吗

最佳答案

您还可以将该脚本放在 body 标记的底部中。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<body>
  <p id="p1">Enter this paragraph.</p>
  <script>
    $("#p1").mouseenter(function() {
      alert("You entered p1!");
    });
  </script>
</body>

<小时/>

问:为什么 $("#p1").mouseenter()head 标签中甚至在等待一段时间后仍不起作用?

答:$("#p1") 是一个函数,无论何时被调用,它都会在整个 DOM 树中查找 ID 为 p1< 的元素 并为它注册了一个事件监听器,因此当 DOM 仍在加载时,它找不到这样的元素,显然无法为其注册任何事件监听器。因此,当您将鼠标移到该元素上一段时间后,没有事件监听器分配给该元素。

关于javascript - 没有 document.ready 功能不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27684980/

相关文章:

javascript - 原子 'autocomplete+' 不工作

javascript - ItemTemplate 中文本框的 onkeypress 事件不会在 chrome 和 firefox 上触发

javascript - 角色替换

javascript - jquery 响应式图像淡入淡出过渡

javascript - 为什么 jQuery scrollTo() 不起作用?

javascript - 似乎无法设置表单的编码类型。 (JavaScript)

javascript - HTML JS Canvas 游戏 : Tile Collision Bug Makes Player Teleport Up

javascript - 如何仅使用客户端解决方案为桌面设备呈现 Javascript 和 CSS?

javascript - 在 jQuery 中单击按钮时将数组中的项目添加到列表

javascript - 几秒钟后检查文档的 scrollTop()