当页面加载而不移动鼠标时,如何触发鼠标事件?

时间:2019-04-30 02:15:27

标签: javascript html css mouseevent

我有一个指向我主页的链接,当鼠标移到它上面时,它会更改颜色。但是,当用户单击时,页面将刷新,并且链接会变回旧颜色。我希望链接再次更改为新颜色,只是因为鼠标在那里,但是在鼠标停止时不会触发任何鼠标事件。但是,在JSFiddle中,它可以工作(将鼠标置于文本上并用F5刷新所有页面),所以我想一定有办法。我不想使用css:hover,因为颜色经常更改,并且我发现在javascript中更改css值有点噩梦。还是不是?另外,请不要使用JQuery。

function colorize() {
	this.style.color = '#C83';
}
function load() {
	var p1 = document.getElementById('p1');
  p1.addEventListener('mouseover',colorize);
}
p {
  font-size: 2em;
  background-color: #385;
}
<body onload='load()'>
  <p id='p1'>Some big text</p>
</body>

1 个答案:

答案 0 :(得分:0)

我要对你说实话,你的这种情况

  

但是,当用户单击时,页面将刷新并且链接变为   回到原来的颜色。

似乎更像是强制刷新页面的问题。为什么要强制刷新?

基于此thread

  

不能。这不是一个受信任的事件。

     

由于以下原因,用户代理生成的事件   用户交互或DOM更改的直接结果是   由用户代理信任,其特权不具备   脚本通过   DocumentEvent.createEvent(“ Event”)方法,使用   Event.initEvent()方法,或通过   EventTarget.dispatchEvent()方法。信任的isTrusted属性   事件的值为true,而不受信任的事件的值为isTrusted   属性值为false。

     

大多数不受信任的事件不应触发默认操作,因为   click或DOMActivate事件除外。

     

您必须添加一个类,并在鼠标悬停/鼠标移出时添加/删除该类   手动事件

尚无标准/值得一提的本地方法。

刷新时必须以某种方式保留状态。传递查询字符串?isMouseOver=true并在刷新后将其解析回就足够了。只需在验证查询字符串后执行相同的mouseover函数,就无需以编程方式触发mouseover事件。

或者您可以使用jQuery which has trigger-able mouse events.


但是我会诚实地避免使用强制刷新解决方案,而是提出其他建议