意外触发Onmouseover事件

时间:2018-12-06 04:09:22

标签: javascript html onmouseover

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

<!DOCTYPE html>
<html>

<head>
    <title>testing</title>
</head>

<body>
    <a>dasdasd</a>
    <p id="k">as</p>

    <script type="text/javascript">
    	
     document.getElementById("k").onmouseover=alert('Hello');
     
    </script>
</body>

</html>

5 个答案:

答案 0 :(得分:2)

尝试在onmouseover="mouseover()"中添加<p>

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

<!DOCTYPE html>
<html>

<head>
    <title>testing</title>
</head>

<body>
    <a>dasdasd</a>
    <p id="k" onmouseover="mouseover()">as</p>

    <script type="text/javascript">
    	function mouseover() {
     alert('Hello');
     }
    </script>
</body>

</html>

答案 1 :(得分:2)

您需要将其放入这样的函数中。

<!DOCTYPE html>
<html>

<head>
    <title>testing</title>
</head>

<body>
    <a>dasdasd</a>
    <p id="k">as</p>

    <script type="text/javascript">
    	
     document.getElementById("k").onmouseover = function(){alert('Hello')};
     
    </script>
</body>

</html>

答案 2 :(得分:2)

属性\"希望您为其分配一个函数,而不是分配一个表达式的求值,在这种情况下为\\。因此,当文档加载时,它将评估该表达式并显示警报,然后将onmouseover值分配给alert("hello")属性,这就是警报仅显示一次的原因。

对于您的目标,您可以使用匿名函数来包装警报并将其添加到属性。检查下一个示例:

null

答案 3 :(得分:2)

问题是 alert 函数之后的()导致页面加载时调用该函数,您会看到 alert 。在匿名函数内部调用该函数,以确保仅在触发事件(onmouseover)时调用该函数:

document.getElementById("k").onmouseover = function(){alert('Hello')};
<a>dasdasd</a>
<p id="k">as</p>

答案 4 :(得分:-1)

尝试此操作(使用JQuery):

$(document).ready(function(){
    $("p").mouseover(function(){
        alert("Hello");
    });
});
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>
<body>

<p>Move the mouse pointer over this paragraph.</p>

</body>
</html>