鍍金池/ 問答/HTML/ 為何鼠標(biāo)放在文字上面的時(shí)候,沒有菜單彈出?

為何鼠標(biāo)放在文字上面的時(shí)候,沒有菜單彈出?

cat  m2.js

function popMenu(event){
    var mymenu = document.getElementById('menu-div');
    mymenu.style.left = event.clientX + "px";
    mymenu.style.top = event.clientY + "px";
    mymenu.style.display = 'block';
    return false;
}

cat m2.css
#menu-div{
    width:140px;
    height:200px;
    background-color:#00beff;
    position:fixed;
    display:none;
    border:2px solid  red;
}

li{
    margin-left:-10px;
    line-height:35px;
}

html代碼

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>鼠標(biāo)的用途</title>
    <link rel="stylesheet" href="m2.css">
    <script src="m2.js"></script>
</head>
<body>
    <p onmouseover="popMenu();">你好</p>
    <div id="menu-div">
    <ul>
        <li>這是菜單項(xiàng)1</li>
        <li>這是菜單項(xiàng)2</li>
        <li>這是菜單項(xiàng)3</li>
        <li>這是菜單項(xiàng)4</li>
        <li>這是菜單項(xiàng)5</li>
    </ul>
    </div>
</body>
</html>

為何鼠標(biāo)放在 你好 這個(gè)字上面的時(shí)候,沒有菜單彈出?
如何修改?

回答
編輯回答
憶當(dāng)年

popMenu() 你這樣調(diào) 就沒有參數(shù)了呀
最好是把元素選出來加事件

2018年6月7日 21:04
編輯回答
敢試

popMenu() 沒傳參數(shù)呀,popMenu() 方法不要event參數(shù)。里面直接用this就好

2017年4月24日 15:44
編輯回答
生性
 function popMenu() {
        var mymenu = document.getElementById('menu-div');
        mymenu.style.left = this.clientX + "px";
        mymenu.style.top = this.clientY + "px";
        mymenu.style.display = 'block';
        return false;
    }

把 js 代碼改為上面這樣就可以了,this 就是當(dāng)前觸發(fā)事件的元素。不需要使用 event 對(duì)象,event 代表的是事件而不是觸發(fā)事件的那個(gè)元素,this 或 event.currentTarget 才代表觸發(fā)事件的元素。并且直接在 html 中的標(biāo)簽上添加事件沒有辦法使用 event 對(duì)象。

2017年10月14日 18:08