2009-10-10 27 views
3

我基本上是在某些div的title屬性中存儲一些數據,我可能不應該這樣做。無論如何,我現在已經做到了,當我將鼠標懸停在這些元素上時,這些信息便會在瀏覽器中彈出,並提供默認工具提示。停止顯示懸停與jQuery的標題?

e.g

<div title="blah blah blah">something</div> 

有來自工作,因爲它一般不會阻止這個標題提示功能的方法?

+1

猜測它是瀏覽器的東西?你不能停止工具提示。 – mauris

+0

它必須是瀏覽器的東西。我不這麼認爲:| – willdanceforfun

回答

4

您可以從您的HTML元素中刪除title屬性並將其存儲在別處。

jQuery提供了一種使用$().data()存儲粘貼到HTML元素的信息的方法。

這應該工作:

$(document).ready(function() 
{ 
    $('[title]').each(function() 
    { 
     var title = $(this).attr('title'); 
     $(this).data('title', title).removeAttr('title'); 
    }); 
}); 

以後,您可以使用$(this).data('title')

8

您可以將該數據從標題移動到另一個屬性並從那裏使用它。

$(document).ready(function() { 
    $('[title]').each(function() { 
     $(this).attr('data', $(this).attr('title')); 
     $(this).removeAttr('title'); 
}); 
+0

哦很酷。 '數據'是一個有效的attr在div上使用? – willdanceforfun

+0

問無聊的問題......謝謝Zed – willdanceforfun

7

而不是使用HTML屬性,你可以存儲使用$().data()

1

正如其他人所說,你應該將數據存儲在比標題另一個字段中的信息。
要回答關於隱藏標題懸停的問題,請查看clueTip(或直接在js)。它用標準版本取代了標準的工具提示,如果可以的話,我確信它可以調整爲不顯示任何內容。

2

捷思銳和Vincent是正確的檢索。

如果你想把它當作一個jQuery功能(它消除了title屬性,而鼠標移動到它,它恢復它,當它的葉子)被包含在一個多腳本:

(function($) { 
     $.fn.tooltipSuppress = function() { 
      $(this).hover(
       function() { 
        $(this) 
         .data('title', $(this).attr('title')) 
         .removeAttr('title'); 
       }, 
       function() { 
        $(this).attr('title', $(this).data('title')); 
       } 
      ); 
     } 
    })(jQuery); 

然後,只需調用這對你想要它應用的元素:

$('div,someOtherSelector,ecc').tooltipSuppress();