jquery工具提示奇怪的行为

时间:2011-12-23 07:29:55

标签: jquery tooltip

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
    });
 }
}

以上代码用于显示工具提示。但奇怪的是,当我添加警报时,工具提示内容是可见的,当我不添加警报时,工具提示内容不可见。

带警报的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" });
    }
});
}

1 个答案:

答案 0 :(得分:0)

警报可以更改的是代码中事件的顺序,因为警报阻止了进一步的javascript执行,这可能意味着其他关键操作可能有时间在代码执行之前发生

例如,如果在ShowToolTip之前调用DOMReady,则可能没有#flashbanner元素,但如果引入警报,则DOM将有时间加载,并且在javascript引擎继续执行该特定代码时,将找到该元素。

DOMReady听众是您缺少的吗?

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