2012-07-01 26 views
7

इसके बटन को दबाए जाने पर मैं लगातार माउस की स्थिति कैसे प्राप्त कर सकता हूं?माउस के नीचे माउस स्थान प्राप्त करें?

मैं जानता हूँ कि मैं कर सकते हैं:

<element onclick="functionName(event)"></element> 
<script> 
function functionName(e){ 
e.pageX 
e.pageY 
//do stuff 
} 
</script> 

और मुझे पता है तुम onmousedown घटना का उपयोग कर सकते हैं, लेकिन मैं कैसे लगातार जबकि बटन अभी भी दबे रहते स्थान प्राप्त होगा?

विचित्र रूप से मुझे यह कहीं भी नहीं मिला।

+1

* "निरंतर" * से आपका क्या मतलब है? 'Onmouseover' आज़माएं। – VisioN

+1

चूंकि माउस चलता है, मैं लगातार स्थिति को अपडेट करना चाहता हूं, लेकिन मैं माउस को क्लिक करना चाहता हूं, तत्व पर होवर नहीं कर रहा हूं .. – maxhud

उत्तर

15

वैसे भी, मैं चेक के साथ mousemove घटना उपयोग करने का सुझाव चाहते हैं तो which घटना संपत्ति 1 (यानी बाईं माउस बटन दबाया) के बराबर होती है:

$("element").on("mousemove", function(e) { 
    if (e.which == 1) { 
     console.log(e.pageX + "/" + e.pageY); 
    } 
});​ 

डेमो:http://jsfiddle.net/HBZBQ/

+3

'e.which == 1' शुद्ध प्रतिभा है। मैंने इस बारे में क्यों नहीं सोचा! – Bojangles

5

Here के लिए एक JSFiddle है आप। आपको एक चर में माउस बटन की स्थिति को स्टोर करने की आवश्यकता है।

jQuery:

$(document).ready(function() { 
    $(document).mousedown(function() { 
     $(this).data('mousedown', true); 
    }); 
    $(document).mouseup(function() { 
     $(this).data('mousedown', false); 
    }); 

    $(document).mousemove(function(e) { 
     if($(this).data('mousedown')) { 
      $('body').text('X: ' + e.pageX + ', Y: ' + e.pageY); 
     } 
    }); 
});​ 

यहाँ, मैं माउस बटन के ऊपर या document में राज्य नीचे $(document).data() का उपयोग कर भंडारण कर रहा हूँ। मैं एक वैश्विक चर का उपयोग कर सकता था, लेकिन इसे इस तरह से संग्रहीत करना कोड को थोड़ा क्लीनर बनाता है।

अपने $.mousemove() फ़ंक्शन में, केवल माउस जो नीचे है, वही करें जो आप चाहते हैं। उपरोक्त कोड में, मैं बस माउस की स्थिति प्रिंट कर रहा हूं।

+0

अच्छा! आईई में, स्वीकृत उत्तर mousedown घटना के बिना onmouseover मूल्यों को बदलता है। यह मैंने कोशिश की हर ब्राउज़र में ठीक काम कर रहा है! धन्यवाद! – pmrotule

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