2011-02-17 39 views
0

我有一個關於懸停和jQuery一個小問題:我怎樣才能讓jQuery來包括等元素融入懸停

我創建了一個表出來的MySQL數據庫。有一些特定的行,屬性顯示:none,以便不顯示它們。但是如果你在元素上放置了一個可見元素,那麼這個不可見元素應該變得可見(也許,有不止一個不可見元素,比直到下一個可見元素的所有不可見元素都可見)。鼠標離開這些元素,不可見的元素應該再次消失我已經做了一個函數,它正是我想要的,除了一個小東西,我想把懸停不僅指向可見行,而且還指向不可見,這意味着,如果你將鼠標從可見元素上移開到以前的不可見元素,它們不應該消失,但它們確實!我試圖用跨度來組織tr,但是看起來在HTML中沒有就像表格中的跨度一樣,除非它們不在td中,之後我試圖用鼠標的位置來解決問題,並將鼠標移動到所有元素上,但這也行不通(在下面的例子中,我嘗試過首先是可見元素本身的xy位置,如果我得到這份工作,我會把它擴展到以前的無形元素。

$("#NH00").hover(
    function(){ 
     $('tr[name="hiddenNH00"]').show();}, 
    function(){ 
     $("*").one("mousemove", function(e) { 
      var offset = $(this).offset(); 
      var xlt = offset.left; 
      var ylt = offset.top; 
      var xrb = offset.left + $(this).outerWidth(false); 
      var yrb = offset.top + $(this).outerHeight(false); 
      if(e.pageX < xlt || e.pageX > xrb || e.pageY < ylt || e.pageY > yrb){ 
       $('tr[name="hiddenNH00"]').hide(); 
      } 
     }) 
    } 
); 
+0

你可以添加你所指的表格的HTML嗎? – DuXati 2011-02-17 15:37:15

回答

0

爲什麼不將相同的事件處理程序附加到「不可見」行?

$("#NH00, tr[name='hiddenNH00']").hover(
    function(){ 
     $('tr[name="hiddenNH00"]').show(); 
    }, 
    function(){ 
     $('tr[name="hiddenNH00"]').hide(); 
    } 
); 

DEMO

+0

因爲在第二次鼠標懸停時,「不可見」行消失,這就是爲什麼鼠標懸停效果不起作用,我在開始時嘗試了這個權利。 – Mischka 2011-02-17 15:36:23

1

看一看的jExpand plugin
我看到的唯一可能的問題是,它似乎期望有一個可見的行,以及一個隱藏的行而不是多個,如您所描述的。

如果該的問題,也許你可以重新工作你的標記,使可見行與現在相同,但隱藏的行在第二行的嵌套表中。

請確保您閱讀了評論。顯然,有人修復了一個IE8問題,我不確定它是否會將它重新寫入實際的文檔中。