2009-04-06 10 views
17

मैं एक ऑनक्लिक हैंडलर कैसे लिख सकता हूं जो नियमित क्लिक के लिए एक चीज और शिफ्ट-क्लिक के लिए एक अलग चीज़ करता है?एक ऑनक्लिक हैंडलर में, मैं कैसे पता लगा सकता हूं कि शिफ्ट दबाया गया था या नहीं?

उत्तर

39

आप क्लिक ईवेंट की शिफ्टकी संपत्ति देख सकते हैं।

window.addEventListener("click", 
 
    function(e) { 
 
    if (e.shiftKey) console.log("Shift, yay!"); 
 
    }, 
 
    false);
<p>Click in here somewhere, then shift-click.</p>

2

घटना डोम से निकाल दिया एक shiftKey (या समतुल्य) संपत्ति shift कुंजी जब घटना निकाल दिया गया था की स्थिति को इंगित करता रोकने के लिए चाहिए; देखें, उदा। उदाहरण के लिए https://developer.mozilla.org/en/DOM/event.shiftKey

यदि आप जावास्क्रिप्ट/डोम रैपिंग लाइब्रेरी जैसे यूयूआई, प्रोटोटाइप या jQuery का उपयोग कर रहे हैं, तो कार्यान्वयन में कोई अंतर एक मुद्दा नहीं होना चाहिए।

3

आपको यह सुनिश्चित करना होगा कि आप event को अपने onclick फ़ंक्शन के पैरामीटर के रूप में पास कर दें। आप अन्य पैरामीटर भी पास कर सकते हैं।

<html> 
<head> 
    <script type="text/javascript"> 
     function doSomething(event, chkbox) 
     { 
      if (event.shiftKey) 
       alert('Shift key was pressed while picking ' + chkbox.value); 
      else 
       alert('You picked ' + chkbox.value); 
     } 
    </script> 
</head> 
<body> 
    <h3>Pick a Color</h3> 
    <input type="radio" name="myColors" onclick="doSomething(event, this)" value="Red" /> Red<br/> 
    <input type="radio" name="myColors" onclick="doSomething(event, this)" value="Green" /> Green<br/> 
    <input type="radio" name="myColors" onclick="doSomething(event, this)" value="Blue" /> Blue<br/> 
</body> 
</html> 
संबंधित मुद्दे

 संबंधित मुद्दे