gpt4 book ai didi

javascript - onmouseup 在 safari 中不起作用

转载 作者:行者123 更新时间:2023-11-30 13:04:25 25 4
gpt4 key购买 nike

这是我从 w3schools 获得的示例,我在其中单独使用 safari 浏览器时会出现奇怪的行为。

http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_onmousedown

Safari :如果我们在段落顶部左键单击,文本会变成红色,当我离开它时,它会变成绿色。没关系。现在,我右键单击该段落的顶部。现在文本颜色变为红色,当我离开它时,它永远不会变为绿色。也就是说,如果我们使用右键单击,onmouseup 在 Safari 中不起作用。谁能告诉我为什么?对此有什么解决方案吗?

最佳答案

在 safari 中,似乎右键单击时焦点被赋予上下文菜单,因此上下文菜单接收 mouseup 事件而不是 P 元素。至于解决方案,您可以检测鼠标按钮以防止它在右键单击时起作用。右键单击事件是除非您想处理自定义上下文菜单,否则很乱。

如果您希望 mouseup 事件在右键单击时在 safari 中起作用,您需要通过将此属性添加到 P 元素来禁用上下文菜单:

oncontextmenu="return false">

还可以检测左键单击是否触发了事件(通常是您要处理的按钮):

function mouse_handler(event) {
var evt=window.event||event;
var button = evt.which || evt.button;
if (button == 1) { // if left mouse button
// handle the event
}
}

在 w3schools 的例子中,它会导致这样的结果:

function myFunction(elmnt,clr,event)
{
var evt=window.event||event;
var button = evt.which || evt.button;
if (button == 1) { // if left mouse button
elmnt.style.color=clr;
}
}

然后在函数调用中传递事件:

<p onmousedown="myFunction(this,'red',event)" onmouseup="myFunction(this,'green',event)">

关于javascript - onmouseup 在 safari 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16207706/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com