簡體   English   中英

如何檢測鼠標是否在 jQuery 或 Javascript 中的項目上

[英]How to detect if mouse is over an item in jQuery or Javascript

是否可以檢查 cursor 是否超過一個項目? 在我的情況下,我不能使用 focus()、mouseenter() 或任何相關方法,但我只需要找出鼠標是否在它上面。

無需檢查鼠標的 state,在這種特殊情況下,您可以在要隱藏的元素之上創建一個透明覆蓋元素。

因此,當該區域懸停時,它會顯示,而當它不顯示時,它顯然會被隱藏,將要隱藏的元素(直到懸停)設置為默認顯示:無; 在您的 css 中- 因此它僅在用戶眼中懸停時顯示。

我知道這不是 OP 所要求的,但它有效。

$(document).ready(function(){
    /* 
    * #object is your element you 
    * want to hide unless hovered
    */
    $("#object").on("mouseleave", function(){
        // divs you want to hide/show
        $('#object').hide();
        $('#overlay').show();
    })

    /* 
    * #overlay is the transparent element 
    * that will sit over the top of #object
    */
    $("#overlay").on("mouseenter", function(){
        // divs you want to hide/show
        $('#object').show();
        $('#overlay').hide();
    })
});

看到它在這里工作http://jsfiddle.net/si_jsfiddle/CvkyE/

這是一個不錯的選擇,因為 mouseenter 和 mouseleave 不受它們頂部的對象的影響,尤其是在 on() 方法中沒有設置標簽 object 參數的情況下,這也是為什么它們非常適合帶有頂部鏈接的 div 容器等...

這有用嗎? 事件.目標

小提琴演示

前任:

function handler(ev) {
  var $target = $(ev.target);
  if( $target.is("#element") ) {
   alert('Here am I !');
  }
}
$("#element").hover(handler);

這是刪除元素的輕微修改

演示

function handler(ev) {
  var $target = $(ev.target);
  if( $target.is("#element") ) {
         $target.remove();
  }
}
$("#element").mouseleave(handler);

http://api.jquery.com/mouseover/這里是 jquery ZC1C4145268E47A98 它也有一個很好的例子。

<input etc.... onmouseover="if (condition){calltoafunction();"}>

在 Javascript 上:如果 Cursor 超過一個項目,那么如果條件工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM