2016-12-03 37 views
0

我有一個divonmousemove,我用來使對象跟隨光標。在這div我有另一divonmouseleave。問題在於,onmouseleave只有在將光標從對象中快速移出時才起作用。但是,如果我刪除onmousemoveonmouseleave開始正常工作。我怎樣才能讓onmousemoveonmouseleave同時工作?onmouseleave不會在onmousemove內工作

的HTML:

<body> 
    <div onmousemove="cursorMove(event)" id="main"> 
     <p id="title">...</p> 
     <div onmouseleave="gameOver()" id="light"></div> 
     <div id="cursor"></div> 
    </div> 
    <button onclick="moveLight()">move</button> 
    <button onclick="startGame()">start</button> 
    <script src="js/javascript.js"></script> 
</body> 

中的JavaScript

function cursorMove(event) { 
    document.getElementById("cursor").style.top = event.clientY - 14; 
    document.getElementById("cursor").style.left = event.clientX - 14; 
    document.getElementById("cursor").style.opacity = '1'; 
} 
function gameOver() { 
    console.log("Game Over"); 
    document.getElementById("light").style.top = 245 + 'px'; 
    document.getElementById("light").style.left = 238 + 'px'; 
    document.getElementById("title").style.opacity = '1'; 
    document.getElementById("title").innerHTML = 'Enter the light'; 
    gameActive = false; 
} 

回答

0

嘗試裏面:onmousemove。兩者的功能是在mousemove

function cursorMove(event) { 
    document.getElementById("light").onmouseleave(); 
} 

的時間運行
<div onmousemove="cursorMove(event),gameOver()" id="main"> 
0

我不知道你的整個腳本代碼,但我認爲你試圖從非全局上下文中調用函數cursorMovegameOver。您正在使用內聯事件處理程序,並且您的函數必須位於窗口執行上下文中。

嘗試不同的方法。例如:https://jsfiddle.net/4hkkm7k5/

此外,內聯事件處理程序可能不是一個好主意。請參閱:https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/Events#Inline_event_handlers_%E2%80%94_don't_use_these

+0

我試圖用addEventListner替換內聯事件,但不幸的是它沒有任何區別。 –

+0

我修改了一下例子:https://jsfiddle.net/4hkkm7k5/1/ –