2014-03-01 47 views
1

我使用jQuery的工具提示,在觸摸屏的工作原理,以及...問題與jQuery工具提示和動態內容 - func_tooltip

http://osvaldas.info/elegant-css-and-jquery-tooltip-responsive-mobile-friendly

它需要調用func_tooltip()。當有一些初始工具提示時會發生問題....調用func_tooltip()並且它們工作。然後,如果有新的動態內容,則需要再次調用func_tooltip(),然後新的工具提示工作。但是,如果func_tooltip()被調用兩次,那麼原始的工具提示只會再次工作一次,然後停止工作。

請參見:

http://jsfiddle.net/vg83V/1/

一些代碼:

$(function(){ 
    func_tooltip(); 
    $("#show_new_content").click(function(){ 
     $('#dynamic_div').html('<span title="New tooltip message" rel="tooltip">?</span>'); 
     func_tooltip(); 
    }); 
}); 

回答

1

您正在使用的特定工具提示庫缺少動態提示的支持。

當您再次調用func_tooltip(或任何後續調用)時,則包含rel =「tooltip」的所有元素都已被處理,並且將刪除其title屬性。

這需要完成以便瀏覽器的原生工具提示支持不會顯示工具提示本身。

爲了使該庫能夠不消除以前的工具提示,它需要存儲原始標題屬性並從那裏重新加載它。

但是還有其他問題仍然需要處理寬度,例如當再次調用func_tooltip時,每次將事件綁定添加到相同的工具提示。處理所有工具提示的中央事件處理程序可以繞過這個問題。

該工具提示庫的另一個問題是它不能逃脫title屬性中找到的任何內容,從而打開安全漏洞。

因此,圖書館需要一些相當大的更新。

我已經使用jquery-ui的工具提示http://www.jqueryui.com/tooltip/,我已經能夠添加新的工具提示,只需在需要的地方注入新的工具提示即可。 jquery-ui工具提示可以跟蹤鼠標移動,並相應地進行自我調整,因此定位和我提到的其他問題一樣。

IMO比試圖修復剛剛使用的庫更快速地查看jquery-ui工具提示或類似的東西。

+0

我喜歡它可以在移動設備上工作 - 不僅僅是鼠標懸停的計算機。我喜歡將代碼明確地寫出來,以便編輯起來很容易。雖然後臺需要進行相當大的更新,但在HTML代碼中添加工具提示的人員不必再做任何事情。 –

+0

它看起來像$(document).tooltip();只需要調用一次.... http://jsfiddle.net/vg83V/3/但我希望它在像這樣的標題中使用html http://jsfiddle.net/vg83V/4/ –

+0

HTML現在可以在jqueryui工具提示中使用:http://jsfiddle.net/vg83V/7/和jqueryui工具提示實際上是在我的iPad上工作(我只是假定他們不會)。 –