2010-11-12 63 views
25

我知道這個功能:是否可以在DIV上添加一個eventlistener?

document.addEventListener('touchstart', function(event) { 
    alert(event.touches.length); 
}, false); 

但有可能把它添加到一個div?例如:

document.getElementById("div").addEventListener('touchstart', function(event) { 
     alert(event.touches.length); 
    }, false); 

我還沒有測試過,也許你們有些人知道嗎?

+7

你爲什麼不自己嘗試一下? – 2010-11-12 11:18:27

+3

因爲我坐在工作:P所以我現在不能測試它。我正在吃午飯,我搜索了一下洙.. :) – Roskvist 2010-11-12 11:23:01

+0

是的。可能。 http://www.alistapart.com/articles/domtricks2/ – 2010-11-12 11:28:54

回答

34

是的,就是這樣。

document.getElementById("div").addEventListener("touchstart", touchHandler, false); 
document.getElementById("div").addEventListener("touchmove", touchHandler, false); 
document.getElementById("div").addEventListener("touchend", touchHandler, false); 

function touchHandler(e) { 
    if (e.type == "touchstart") { 
    alert("You touched the screen!"); 
    } else if (e.type == "touchmove") { 
    alert("You moved your finger!"); 
    } else if (e.type == "touchend" || e.type == "touchcancel") { 
    alert("You removed your finger from the screen!"); 
    } 
} 

或者用jQuery

$(function(){ 
    $("#div").bind("touchstart", function (event) { 
    alert(event.touches.length); 
    }); 
}); 
+0

非常感謝:) – Roskvist 2010-11-12 12:01:22

+0

JQuery的綁定也需要第三個布爾參數來處理冒泡。默認情況下,在JavaScript代碼中也相當於false,所以爲了保持一致性,您應該在兩個列表中都沒有它。 – schilippe 2014-07-29 16:28:02

0

輪,如果你不使用addEventListener,可能是一個替代克服ID控制的其他方式。

$(document).ready(function() { 
      $('#container1').on("contextmenu", function (e) { 
       e.preventDefault(); 
      }); 
     }); 
相關問題