2010-02-09 65 views
1

Tipsy jquery plugin安裝在我的應用程序jQuery的醉意的插件

這是我的裝載功能

$(function() { 
    tipsy(); 
}); 

下面的代碼是在一個js文件

var htm = '<div id="new_div" onmouseover="tipsy(this);">' ; 

function tipsy(tip) 
{ 
    if ('' != sumtitle) 
    { 
     tip.title = tip.innerHTML; 
    } 
    else if(tip) 
    { 
     tip.title = tip.innerHTML; 
    } 
    $(tip).tipsy({gravity: 'w'}); 
} 

如何是正常的標題顯示然後在第一個jQuery小費後。

+4

我見過你最近的一些問題,看來你在jQuery基礎知識方面掙扎很多。我建議你仔細看看jQuery(有很多教程和書籍)。這將幫助您瞭解如何使用jQuery,並且可以充分利用它。 – Natrium 2010-02-09 07:20:58

+0

謝謝...........是的,我是jquery的新手 – Hulk 2010-02-09 07:23:24

回答

2

插件似乎刪除了title屬性,並將其值分配給名爲original-title的自定義屬性,以避免顯示默認瀏覽器工具提示。也許在你的情況下,這發生得太晚了:鼠標懸停在元素上,這啓動了原生瀏覽器工具提示。然後,在元素上執行tipsy()並切換屬性名稱,但這太遲了,因爲本機工具提示的超時已經開始。

你或許應該阻止事件的默認操作,例如:

$('#new_div').bind('mousover', function (e) { 
    tipsy(this); 
    e.preventDefault(); 
}); 

編輯:由於這似乎並沒有收到預期的效果,請致電tipsy($('#new_div'))在div創建後馬上刪除mouseover處理程序。無論如何,你一直在做的事情可能會有點問題:醉心的插件可能使用mouseover事件,並且您在onmouseover事件處理程序中調用.tipsy({ gravity: 'w' })。反覆地,如果你鼠標移動,然後再次混亂。這是很多不必要的事件分配。

+0

如果你從函數返回false,jquery將負責防止默認並停止傳播等。 – icktoofay 2010-02-09 07:31:08

+0

那麼,在這種情況下,如果我理解正確,你不一定要停止傳播。防止默認操作(即工具提示)就足夠了。 – 2010-02-09 07:38:15

+0

湯姆我面臨着同樣的問題,你已經描述過,甚至綁定不在這種情況下工作也在jquery-tipsy.js我在tip.remove()中得到一個錯誤; – Hulk 2010-02-09 07:41:41

1

你做錯了。 試試這個:

$('#new_div').tipsy(); 

jQuery是專爲在JS代碼中使用選擇。請勿在HTML中發生任何事件。

+0

+1因爲「請勿在HTML中發生任何事件。」 – Nathan 2011-10-21 22:01:37

1

另一種方法是,而不是使用「標題」屬性,使用「原標題」屬性。