最初のタッチ後に touchevent を削除しようとしています。
次のコードを試しましたが、うまくいきませんでした:
ourCanvas.addEventListener("touchstart", function(){
evt.preventDefault();
startGame();
ourGameCanvas.removeEventListener("touchstart");
}, false);`
最初のタッチ後に touchevent を削除しようとしています。
次のコードを試しましたが、うまくいきませんでした:
ourCanvas.addEventListener("touchstart", function(){
evt.preventDefault();
startGame();
ourGameCanvas.removeEventListener("touchstart");
}, false);`
You need to pass a reference to the original function to removeEventListener
:
ourCanvas.addEventListener("touchstart", function funcref(evt) {
evt.preventDefault();
startGame();
ourCanvas.removeEventListener("touchstart", funcref, false);
}, false);
In the previous code, I turned the anonymous function expression in a named function expression (funcref
) so that it can be used later within the function.
And I renamed ourGameCanvas
to ourCanvas
. An event listener can only be removed if the element, event name, function reference and useCapture flag are identical to the ones used by addEventListener
.
メソッドは、removeEventListener
メソッドと同じ引数を期待していaddEventListener
ます...つまり:
document.body.addEventListener('touchstart',function touchStartHandler(e)
{//use named function
document.body.removeEventListener('touchstart',touchStartHandler, flase);
},false);
attachEvent
andについてdetachEvent
も同様です (IE < 9 をサポートするようにコーディングしている場合)