僅當單擊複選框時纔想「聽」鼠標事件。因此,我有以下代碼:在條件下收聽鼠標事件
HTML
<input type="checkbox" id="magicLens" onchange="magicLens()">
<label for="magicLens">Magic Lens</label>
JS
function magicLens(){
const magicLens_checked = document.getElementById('magicLens').checked;
if (magicLens_checked === true){
canvas.addEventListener('mousemove', e => {
myAnonymous = arguments.callee;
...
// draw something at the current mouse position
// and therefore use the 'e' event object
});
}
else {
canvas.removeEventListener('mousemove', myAnonymous);
}
}
問題是,該圖(a透鏡)時的複選框未被選中時,也會發生( false
)。我甚至不確定removeEventListener()
是否是對付它的正確方法(儘管我已經嘗試了沒有它的所有東西,結果也是一樣的)。
也許你有更好的想法來描述標題中的問題。隨意編輯!
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments/callee – Teemu
如何在開始時添加mousemove監聽器並在裏面檢查magicLens是否被選中並決定繪製或不? – ReadyFreddy
使用'arguments.callee'是不好的做法,所以請嘗試使用命名函數 – vassiliskrikonis