2013-06-21 239 views
0

我有一個工具提示插件(tooltip.js & tooltip.css)。該工具提示的要求是,在SPAN或DIV元素中,您需要同時具有rel ='tooltip'和title ='' - 那麼工具提示插件將啓動工具提示。Javascript DOM元素無效CSS

問題是,我將DOM元素添加到具有這些屬性的頁面,但它們不起作用。他們最初的工作,但是當我添加DOM元素,那些DOM元素停止工作。

僅供參考我使用(jQuery Mobile的1.3.1 &的jQuery 1.9.1)

HTML

<table id='maintable'> 

</table> 

JAVASCRIPT

//function initiates with this stuff 
var part1 = "<tr><td rel='tooltip' title='new title'>Something</td></tr>"; 
$('#maintable').append(part1).trigger('create'); 

我到底做錯了什麼?爲什麼它不啓動? FYI .trigger('refresh')不起作用。

+1

我不工作,因爲您正在使用的工具提示功能不適合與動態元素配合使用。如果您希望jQuery功能與它們一起使用,那麼在追加數據後,您將不得不重新綁定到這些元素。 – Ohgodwhy

+0

'rebind'是什麼意思? – Sanya

+0

'$('[title]')。myTooltip()' – Ohgodwhy

回答

1

更改此

targets.bind('mouseenter', function() 

$(document).on('mouseenter', targets, function(){ 

而且還

target.bind('mouseleave', remove_tooltip); 
tooltip.bind('click', remove_tooltip) 

$(document).on('mouseleave', target, remove_tooltip); 
$(document).on('click', tooltip, remove_tooltip); 

並在我的代碼中替換document,用最接近的靜態**(從未刪除或替換)**父元素。

這將給予動態元素的事件委託,並允許代碼仍然執行。

0

我不是jQuery(mobile)的專家,但我認爲工具提示在附加DOM元素之前進行初始化。如果是這種情況,您應該在工具提示敲入DOM樹之前追加元素,或者更加動態地(更可能是常用用例)重新初始化工具提示。無論如何,我建議檢查工具提示的實施,如果可能的話,找到最簡單,最有效的方式。