2012-09-11 27 views
0

我們正在使用jquery tiptip插件顯示工具提示,頁面是動態的。鼠標懸停和mousenter環路

的代碼工作正常,IE8和Firefox,但在IE7中,它在無限循環中獲取和我收到了內存不足的錯誤警報。代碼是,

$('a[toolTip]').live('mouseover', function(e) { 
     $(this).tipTip({attribute:"toolTip"});   
     $(this).trigger('mouseenter'); 

    }); 

我們使用工具提示作爲tiptip的屬性。當我刪除觸發器mouseenter代碼行時,它也在IE7中工作,但不是在第一次懸停時,僅在第二次懸停時。這就是爲什麼我添加了以下代碼行

$(this).trigger('mouseenter'); 

請幫我解決這個無限循環在IE7中。

問候 哈日

+0

只有在第二個懸停呃?我敢打賭,你有一個調用這個鼠標懸停功能的ajax調用。這是唯一合理的情況。另外,我們不再使用.live()。我們使用'.delegate()'或'.on()',例如'$(document).on('mouseover','a [toolTip]',function(e){// stuff});'[這是一個工作jsFiddle利用你的相同的方法。](http://jsfiddle.net/kZYzP/) – Ohgodwhy

+0

是的,它只能在第二個懸停工作。如果我使用on而不是live,結果是相同的,$(document).on('hover','a [toolTip]',function(e){$(this).tipTip({attribute:「toolTip」 });});這在第一次懸停時不起作用。如果我添加$(document).on('hover','a [toolTip]',function(e){$(this).tipTip({attribute:「toolTip」}); $(this).trigger(' mouseenter');});,由於無限循環,它在IE7中導致內存不足 – user1293071

+0

您是否設法解決這個問題?我有同樣的問題,工具提示二號懸停:( – Alejandra

回答

1

工具提示適用於第二懸停,因爲在第一懸停的屬性未設置。發生無限循環是因爲你再次在處理程序上觸發不應該完成的鼠標事件。雖然經歷tiptip的插件的網站,初始化插件的方法是:

$("a[toolTip]").tipTip({"attribute":"tooltip"}); 

這又會自動調用,當你將鼠標懸停的元素。無需單獨附加元素的鼠標事件。

+0

喜後表示,感謝您的回答,但不會對動態內容中使用AJAX的工作,將會有啓動的時候沒有錨標籤,內容是使用裝一個Ajax調用,所以這是不行的 – user1293071

0

看了一下文檔。似乎實現這個最簡單的方法是。

$('a[toolTip]').tipTip({'activation' : 'hover'});

這將確保所有的元素都被懸停功能激活,您不必擔心委派的事件處理程序。

+0

您好,感謝您的回答,但不會對動態內容中使用AJAX的工作。將有上啓動了無錨標籤,內容是使用Ajax調用加載的,所以這將不行 – user1293071