2010-07-27 179 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); 
}); 

這將確保該工具提示初始化函數將被調用之前自己的代碼。