Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Onmouseover事件在不需要时触发_Javascript_Html_Onmouseover - Fatal编程技术网

Javascript Onmouseover事件在不需要时触发

Javascript Onmouseover事件在不需要时触发,javascript,html,onmouseover,Javascript,Html,Onmouseover,我在学习javascript,并尝试鼠标事件。在这段代码中,当我在警告框的帮助下将鼠标放在元素上时,我试图操纵该元素。但是问题是,即使鼠标不在元素上方,也会显示警报框 测试 达斯达德 作为 document.getElementById(“k”).onmouseover=alert('Hello'); 尝试在中添加onmouseover=“mouseover()” function mouseover() { alert('Hello');

我在学习javascript,并尝试鼠标事件。在这段代码中,当我在警告框的帮助下将鼠标放在元素上时,我试图操纵该元素。但是问题是,即使鼠标不在元素上方,也会显示警报框


测试
达斯达德

作为

document.getElementById(“k”).onmouseover=alert('Hello');
尝试在
中添加
onmouseover=“mouseover()”

       function mouseover() {
            alert('Hello');
         }

测试
达斯达德

as

函数mouseover(){ 警惕(“你好”); }
您需要将其放入这样的函数中


测试
达斯达德

作为

document.getElementById(“k”).onmouseover=function(){alert('Hello')};
试试这个(使用JQuery):

$(文档).ready(函数(){
$(“p”).mouseover(函数(){
警惕(“你好”);
});
});

将鼠标指针移到此段落上


onmouseover的属性
onmouseover
期望您为其分配函数,而不是分配表达式的求值,在本例中:
alert(“hello”)
。因此,当文档加载时,它计算该表达式并显示警报,然后将
null
值分配给
onmouseover
属性,这就是警报只显示一次的原因

出于您的目标,您可以使用匿名函数包装警报并将其分配给属性。检查下一个示例:


测试
达斯达德

如图所示

document.getElementById(“k”).onmouseover=function(){alert('Hello')};
问题是,警报函数后的
()
会导致在页面加载时调用函数,您会看到警报。调用匿名函数中的函数,该函数将确保仅在触发事件(onmouseover)时调用该函数:

document.getElementById(“k”).onmouseover=function(){alert('Hello')}
dasdasd

正如通过执行

function()
(带括号),您正在执行函数,而不是传递它。相反,请执行
onmouseover=function(){alert('Hello');}
此问题的可能重复项与jQuery无关。感谢您的帮助。非常感谢。