Javascript 装载时悬停不';行不通

Javascript 装载时悬停不';行不通,javascript,jquery,html,events,hover,Javascript,Jquery,Html,Events,Hover,演示: 1) 将光标放在红色框上 2) 不要移动光标,只需按ctrl+r(页面应重新加载) 3) 你不会得到警告的 嗯,一旦你将其取消悬停/悬停,你会得到一个警报。问题是,当光标放置在页面加载的红色框上时,悬停事件不会触发(也不会触发鼠标指针) 我该如何解决这个问题 我知道,浏览器的工作似乎是正确的,但我真的需要知道元素是否悬停,即使在页面加载时也是如此 $(function() { function hovered(e){ e.type == 'mouseenter' ? al

演示:

1) 将光标放在红色框上

2) 不要移动光标,只需按ctrl+r(页面应重新加载)

3) 你不会得到警告的

嗯,一旦你将其取消悬停/悬停,你会得到一个警报。问题是,当光标放置在页面加载的红色框上时,
悬停
事件不会触发(也不会触发
鼠标指针

我该如何解决这个问题

我知道,浏览器的工作似乎是正确的,但我真的需要知道元素是否悬停,即使在页面加载时也是如此

$(function() {
  function hovered(e){
      e.type == 'mouseenter' ? alert('on') : alert('off'); 
  }

  $('.box').hover(hovered);
});

你不可能做到这一点,不管怎样用纯JS都不行

  • 在启动事件之前,无法在初始页面加载时手动获取鼠标位置。X和Y位置为0。因此,无法判断鼠标是否已经在元素上

  • 在鼠标移动之前,不会触发任何鼠标事件。你可以听mousemove立即响应,但这仍然不能满足你的需求


  • 注释中指出的问题是最接近的,但这并不是一个可靠的解决方案。

    您是否尝试将所有JS代码包装在
    $(function(){//your code})中?这将使它在文档上运行。(准备就绪)@John它没有帮助我似乎在使用Chrome时收到警报?在第2步之后,我肯定会收到警报(“打开”)。Chrome版本25.0.1364.172 m