2010-07-27 248 views
1

这里是我的<head> + <body>部分:JavaScript的干扰

<script type="text/javascript" src="http://www.septa.org/site/js/jquery-1.4.2.js"> 
<script type="text/javascript"> 
function insert(){ 
var linkElement = document.getElementById("BackButton"); 
var linkElementLnk = document.getElementById("BackButtonlnk"); 
var loc_array = document.location.href.split('/'); 

if (loc_array[loc_array.length-3] == "m") 
{ 
    linkElementLnk.style.display = 'none'; 
} 
if (loc_array[loc_array.length-3] == "maps" || loc_array[loc_array.length-2] == "stations" || loc_array[loc_array.length-3] == "stations") 
{ 
    linkElementLnk.style.display = 'block'; 
    var newT = document.createTextNode("Stations & Maps"); 
} 
if (loc_array[loc_array.length-2] == "w" || loc_array[loc_array.length-2] == "s" || loc_array[loc_array.length-2] == "h") 
{ 
    linkElementLnk.style.display = 'block'; 
    var newT = document.createTextNode(unescape(capWords(loc_array[loc_array.length-2]))); 
} 
else if (loc_array[loc_array.length-3] != "m") 
{ 
    linkElementLnk.style.display = 'block'; 
    if (loc_array[loc_array.length-1] == "index.html" || loc_array[loc_array.length-1] == "index.shtml" || loc_array[loc_array.length-1] == "") 
    { 
    var newT = document.createTextNode(unescape(capWords(loc_array[loc_array.length-3]))); 
    } 
    else 
    { 
    var newT = document.createTextNode(unescape(capWords(loc_array[loc_array.length-2]))); 
    } 
} 
linkElement.appendChild(newT); 
} 
function capWords(str){ 
    var words = str.split(" "); 
    for (var i=0 ; i < words.length ; i++){ 
     var testwd = words[i]; 
     var firLet = testwd.substr(0,1); 
     var rest = testwd.substr(1, testwd.length -1) 
     words[i] = firLet.toUpperCase() + rest 
    } 
    return words; 
} 
</script> 
<script type="text/javascript" src="http://www.septa.org/site/js/qTip.js"></script> 
<style> 
div#qTip { 
    padding: 3px; 
    border: 1px solid #666; 
    border-right-width: 2px; 
    border-bottom-width: 2px; 
    display: none; 
    background: #1c1c1c; 
    color: #FFF; 
    font: bold 9px Verdana, Arial, Helvetica, sans-serif; 
    text-align: left; 
    position: absolute; 
    z-index: 1000; 
} 
</style> 
</head> 
<body onload="insert();"> 

当我在我的onload="insert();"<body>保持jQuery的工具提示无法正常工作。任何人都知道这个方法吗?

回答

4

我查看了代码:http://www.septa.org/site/js/qTip.js 上面包括的那个。

猜猜我发现了什么?大奖!

window.onload = function() { 
    tooltip.init(); 
} 

因此,当您将自己的功能添加到主体标记时,它将覆盖工具提示功能。

0

尝试删除onload =“insert();”并使用jquery准备好。

 
$(document).read(function() { 
    insert(); 
}); 

,当你使用jquery insted的

 
var linkElement = document.getElementById("BackButton"); 

使用

 
var linkElement = $('#BackButton'); 

insted的

 
inkElementLnk.style.display = 'block'; 

使用jQuery

 
inkElementLnk.css('display', 'block'); 
0

也许某种竞争条件正在发生?很难说如果没有看到所有的代码,但为什么不在insert()文档准备就绪,因为你已经使用jQuery?

$(function() { 
    insert(); 
}); 

this answer光,你可以在未来通过执行类似

var oldLoad = window.onLoad || function(){}; 
window.onLoad = function() {  
    // new functionality 

    oldLoad(); 
}; 
0

尝试调用inside之前添加延迟避免这种情况。在下面的代码,它会一半秒后得到所谓:

$(document).ready(function() { 
    setTimeout(insert, 500); 
}); 

这将确保该工具提示初始化函数将被调用之前自己的代码。