2011-12-23 60 views
0
function ShowToolTip() { 
var values = document.getElementById('HiddenEmbedptt').value; 
if (values == "True") { 
    alert(1); 
    $("#flashbanner").tooltip({ 
     bodyHandler: function() { 
      return $("#divDesc").html(); 
     }, 
     track: true, 
     showURL: false, 
     delay: 0 
    }); 
} 
} 

上面的代碼是用來顯示工具提示。但奇怪的行爲是當我添加警報,提示內容是可見的,當我不添加警報,提示內容是不可見的。jquery工具提示奇怪的行爲

HTML代碼警報

<div id="tooltip" style="display: block; top: 100px; left: 46px; right: 0pt;" 
class="viewport-right"><h3 style="display: none;"></h3><div class="body">My Tooltip 
Text</div><div class="url" style="display: none;"></div></div> 

HTML代碼,而警報

<div id="tooltip" style="display: block; left: 46px; right: 0pt; top: 100px;"><h3></h3> 
<div class="body"></div><div class="url"></div></div> 

我不知道可能是什麼原因,如何警告可能改變代碼的行爲?

編輯:

function getPlayerWidth() { 
alert(1); 
$(document).bind('mousemove', function(e) { 
    $("#first").text("e.pageX: " + e.pageX + ", e.pageY: " + e.pageY); 
    if (e.pageX >= 73 && e.pageX <= 340 ) { 
     //$("#divDesc").css({float:"right",position:"absolute",right:"0",clear:"left"}); 
     $("#tooltip").css({display:"block",left:"46px",right:"0",top:"100px",color:"red !important"}); 
    } 
    if (e.pageY >= 4 && e.pageX <= 290) { 
     //$("#divDesc").css({float:"right",position:"absolute",right:"0",clear:"left"}); 
     $("#tooltip").css({ display: "block", left: "46px", right: "0", top: "100px", color: "red !important" }); 
    } 
}); 
} 

回答

0

什麼警報可以改變是在你的代碼事件順序,作爲警告是阻止進一步的JavaScript執行,這可能意味着其他關鍵行動可能有時間在您的代碼執行之前發生。

例如,如果ShowToolTipDOMReady之前被調用,有可能不是一個#flashbanner元素,但如果你介紹的警報時,DOM將有時間來加載,該元素將通過JavaScript引擎繼續及時發現執行那段特定的代碼。

是一個DOMReady監聽你錯過了什麼?

$(function() { 
    ShowToolTip(); 
}); 
+0

呀ShowToolTip()被調用由您給出,但仍行爲一樣 – 2011-12-23 08:20:34

+0

你能提供一個[的jsfiddle(http://jsfiddle.net/)重現這個錯誤? – 2011-12-23 08:21:50

+0

我很抱歉,也有很多參與這一 – 2011-12-23 08:29:14