2011-11-04 26 views

उत्तर

13

:hover है अलर्ट एक सीएसएस pseudo-class है , एक jQuery चयनकर्ता नहीं। इसे सभी ब्राउज़रों पर is() के साथ विश्वसनीय रूप से उपयोग नहीं किया जा सकता है।

+1

तो मैं कैसे की जाँच करेगा माउस एक तत्व ओवर में लिंक है या नहीं –

+0

Connell के एक swer काफी मददगार है। –

+1

मैं अलग होना चाहता हूं: http://jsfiddle.net/cSCF7/1/ –

6

जैसा कि फ्रेडरिक ने कहा, :hover सीएसएस का हिस्सा है और jQuery में चयनकर्ता नहीं है।

कोई वैकल्पिक समाधान के लिए, पढ़ने के How do I check if the mouse is over an element in jQuery?

mouseout पर एक समाप्ति सेट fadeout और वस्तु में आंकड़ों के वापसी मान स्टोर करने के लिए। फिर onmouseover, डेटा में मान होने पर टाइमआउट रद्द करें।

फीडआउट के कॉलबैक पर डेटा निकालें।

1

आप अभी क्यों उपयोग नहीं करते हैं। होवर? इस-

$('.xx').hover(function(){   
     alert('d'); 
    }, function() { 
     alert('f); 
    }); 
1

कोशिश कुछ करता है, तो माउस है इस

flag = ($('.xx:hover').length>0); 

की तरह कुछ की कोशिश करो तो आप पता कर सकते, वस्तु

+1

यह माता-पिता के होवर आउट की जांच करने में मेरी सहायता कैसे करता है! – Adrian

27
function idIsHovered(id){ 
    return $("#" + id + ":hover").length > 0; 
} 

http://jsfiddle.net/mathheadinclouds/V342R/

+1

यह पूरी तरह से काम करता है। मुझे यकीन नहीं है कि यह क्यों ऊपर नहीं है। यह आपके कोड पर झंडे सेट किए बिना ओपी की ज़रूरतों को ठीक से पूरा करता है। – friggle

0
x.filter(':hover').length 

यह तब भी उपयोगी हो सकता है जब आपने पहले से ही कुछ ऑब्जेक्ट्स/या कॉलबैक फ़ंक्शन के अंदर पूछताछ की हो।

0

यहां थोड़ा jQuery प्लगइन है जो जांचता है कि माउस तत्व पर है या नहीं।

उपयोग:

$("#YourElement").isMouseOverMe();

उदाहरण:

(function($) { 
 

 
    var mx = 0; 
 
    var my = 0; 
 

 
    $(document).mousemove(function(e) { // no expensive logic here 
 
    mx = e.clientX; 
 
    my = e.clientY; 
 
    }) 
 

 
    $.fn.isMouseOverMe = function() { 
 

 
    var $el = $(this); 
 
    var el_xmin = $el.offset().left; 
 
    var el_ymin = $el.offset().top; 
 
    var el_xmax = el_xmin + $el.width(); 
 
    var el_ymax = el_ymin + $el.height(); 
 
    return mx >= el_xmin && mx <= el_xmax && my >= el_ymin && my <= el_ymax; 
 
    }; 
 

 
}(jQuery)); 
 

 
$(document).mouseup(function(e) { 
 
    console.log($("#div").isMouseOverMe()) 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<h2>Click inside or outside of the yellow box</h2> 
 
<div id="div" style="width:200px;height:200px;background-color:yellow;margin-top:50px"></div>

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