2013-03-06 28 views
0

我有Jquery qtip()函數,並且需要在鼠標懸停鏈接時獲取id。我可以使用jquery .load()來獲取頁面。不能使用下面的代碼。有人知道嗎?

下面是我的腳本

$(function() { 
     $(".cabinlink").qtip({ 
content: $("#loadCabin").load("/mysite ." + $(this).attr('id')), 

       show: 'mouseover', 
       hide: 'mouseout', 

       style: { 
        width: 780 
       }, 
       position: { 
        corner: { 
         target: 'LeftBottom', 
         tooltip: 'TopLeft' 
        } 
       } 
      }); 
     }); 

.cabinlink是mousehover鏈接

<a id="1" href="javascript:void(0)" class="cabinlink" /> 
<a id="2" href="javascript:void(0)" class="cabinlink" /> 
<a id="3" href="javascript:void(0)" class="cabinlink" /> 

loadCabin是開拓qtip箱

<div id="loadCabin"></div> 

修正碼股利,能夠工作,但需要鼠標兩次。第一個mouseover沒有結果。有人知道嗎?

$(function() { 
     $(".cabinlink").live('mouseover', function() { 

      var id = $(this).attr('id'); 
      var url = "/Mysite ." + id; 
      $(this).qtip({ 
       overwrite: false, 
       content: $("#loadCabin").load(url), 
       show: { ready: true, when: false }, 
       hide: 'mouseout', 
       style: { 
        width: 780 
       }, 
       position: { 
        corner: { 
         target: 'LeftBottom', 
         tooltip: 'TopLeft' 
        } 
       } 

      }); 
     }); 

    }); 
+0

ID不能以數字開頭。 – Blender 2013-03-06 01:39:01

+0

我不知道qtip API能夠很好地回答你的問題,但我可以告訴你,你沒有得到你期望的ID,因爲「this」指的是你傳遞給qtip的選項對象,而不是到被徘徊的元素。我想qtip的一個選項可以讓你傳遞一個回調函數,你可以調用$(this).attr('id')來返回元素的ID。 – 2013-03-06 03:03:47

+0

除此之外,您還需要考慮時間... $(「。cabinlink」)。qtip(...)在頁面加載後立即運行,並且只是告訴它使用給定的選項進行初始化。稍後,懸停事件由qtip處理,只有這樣,您纔會知道哪個元素被懸停。 – 2013-03-06 03:08:37

回答

0

試試這個:

$(".cabinlink").qtip({ 
    onShow: function() { 
     $("#loadCabin").load("/mysite." + $(this).attr('id')) 
    }, 

    show: 'mouseover', 
    hide: 'mouseout', 

    style: { 
     width: 780 
    }, 
    position: { 
     corner: { 
      target: 'LeftBottom', 
      tooltip: 'TopLeft' 
     } 
    } 
}); 

如果不工作,另一回調函數之一可能...查看http://craigsworks.com/projects/qtip/docs/api/#callbacks

+0

無法使您的代碼工作。我已經修改了上面的代碼,它似乎是這樣工作的,但現在問題是我需要兩次這樣的鼠標懸停。第一個mouseover沒有出現任何東西。任何想法 – 2013-03-08 08:15:29

+0

看起來你可能需要自己處理mouseover事件,然後使用qtip API的updateContent方法,如下所示:http://stackoverflow.com/questions/6879907/jquery-ajax-and-qtip-dynamic -內容。請注意,您需要使用$ .get或$ .ajax方法而不是$ .load來使用此方法。 – 2013-03-08 12:29:59

+0

其實我覺得你的情況和鏈接中的不一樣,可能有一個更簡單的解決方案,如果我想到的話,我會在這裏回覆。 – 2013-03-08 12:39:21