2011-04-29 50 views
0

所有子元素我有這樣的代碼:我怎能無視與jQuery

$('.div2').mousemove(function(e) { 
    var posX = (50 - (e.offsetX)/$(this).width() * 100); 
    var posY = (-50 + (e.offsetY)/$(this).height() * 100); 
    $('.results').html(posX+', '+posY); 
}); 

而且這個網站:

<div class="div1"> 
    <div class="div2"> 
    <ul> 
     <li>Item 1</li> 
     <li>Item 2</li> 
     <li>Item 3</li> 
    </ul> 
    </div> 
</div> 
<div class="results"></div> 

它只能Mouser的時候不叮無縫的項目...如何我可以忽略它們,但獲得正確的價值嗎?

我已經試過:

if(e.target != this){ 
    return true; 
} 

,但沒有得到過的物品正確的價值...

回答

1

歡迎堆棧溢出!

使用事件屬性layerXlayerY來獲取所需的值。即使事件綁定到父項,offsetXoffsetY屬性始終相對於光標下方的元素。這同樣適用於target屬性。

此外,我更喜歡使用currentTarget,因爲它使您的代碼更易於閱讀和理解,而無需追蹤this的原點。

$('.div2').mousemove(function(e) { 
    var posX = (50 - (e.layerX)/$(e.currentTarget).width() * 100); 
    var posY = (-50 + (e.layerY)/$(e.currentTarget).height() * 100); 
    $('.results').html(posX+', '+posY); 
}); 

看看我test case on jsFiddle