2010-11-12 9 views
25

मैं इस समारोह को पता है:क्या एक डीआईवी पर इवेंटलिस्टर जोड़ना संभव है?

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

लेकिन यह एक div में जोड़ने के लिए संभव है? उदाहरण:

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

मैंने अभी तक इसका परीक्षण नहीं किया है, शायद आप में से कुछ लोग इसे जानते हैं?

+7

आप इसे स्वयं क्यों नहीं देखते? –

+3

क्योंकि मैं काम पर बैठा हूं: पी तो मैं अभी इसका परीक्षण नहीं कर सकता। मैं दोपहर का भोजन कर रहा था और मैंने इस पर थोड़ी सी खोज की .. :) – Roskvist

+0

हां। मुमकिन। http://www.alistapart.com/articles/domtricks2/ –

उत्तर

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

+0

JQuery का बाइंड बुलबुले को संभालने के लिए तीसरा बूलियन पैरामीटर भी लेता है। डिफॉल्ट जावास्क्रिप्ट कोड में भी गलत के बराबर है, इसलिए स्थिरता के लिए आपको या तो दोनों लिस्टिंग या किसी भी में होना चाहिए। – schilippe

0

इसका उल्टा अगर आप addEventListener एक विकल्प का उपयोग नहीं कर रहे हैं, शायद आईडी पर नियंत्रण पाने के लिए के साथ।

$(document).ready(function() { 
      $('#container1').on("contextmenu", function (e) { 
       e.preventDefault(); 
      }); 
     }); 
संबंधित मुद्दे