因爲我對JavaScript和Jquery知之甚少,所以希望能夠在這裏得到答案。Javascript互相干擾
這是我的文檔<head></head>
中的代碼。
<script src="js/jquery.js" type="text/javascript"></script>
<script src="js/functions.js" type="text/javascript"></script>
<script type="text/javascript" src="js/jscolor/jscolor.js"></script>
<script type="text/javascript">
var current_shouts = 0;
function $(eleid) {
return document.getElementById(eleid);
}
function urlencode(u) {
u = u.toString();
var matches = u.match(/[\x90-\xFF]/g);
if (matches) {
for (var mid = 0; mid < matches.length; mid++) {
var char_code = matches[mid].charCodeAt(0);
u = u.replace(matches[mid], '%u00' + (char_code & 0xFF).toString(16).toUpperCase());
}
}
return escape(u).replace(/\+/g, "%2B");
}
function shouts() {
clearTimeout(getshout);
var xmlHttp = (window.XMLHttpRequest) ? new XMLHttpRequest : new ActiveXObject("Microsoft.XMLHTTP");
xmlHttp.open("GET", "../shoutbox/shouts.php?i=" + Math.random());
xmlHttp.onreadystatechange = function() {
if (this.readyState == 4) {
if (parseInt(this.responseText) > current_shouts) {
getshouts();
current_shouts = parseInt(this.responseText);
}
getshout = setTimeout("shouts()", 1000);
}
}
xmlHttp.send(null);
}
function getshouts() {
var xmlHttp = (window.XMLHttpRequest) ? new XMLHttpRequest : new ActiveXObject("Microsoft.XMLHTTP");
xmlHttp.open("GET", "../shoutbox/getshouts.php?i=" + Math.random());
xmlHttp.onreadystatechange = function() {
if (this.readyState == 4) $("shoutbox").innerHTML = this.responseText;
$("shoutbox").scrollTop = $("shoutbox").scrollHeight;
}
xmlHttp.send(null);
}
function push_shout() {
shout();
return false;
}
function shout() {
var xmlHttp = (window.XMLHttpRequest) ? new XMLHttpRequest : new ActiveXObject("Microsoft.XMLHTTP");
xmlHttp.open("POST", "../shoutbox/shout.php");
var data = "user=" + urlencode($("user").value) + "&" + "shout=" + urlencode($("shout").value);
xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlHttp.setRequestHeader("Content-length", data.length);
xmlHttp.onreadystatechange = function() {
if (this.readyState == 4) {
if (!this.responseText) $("shout").value = "";
else {
$("console").innerHTML = this.responseText;
setTimeout("$('console').innerHTML = ''", 5000);
}
getshouts();
}
}
xmlHttp.send(data);
return true;
}
var getshout = setTimeout("shouts()", 1000);
</script>
看來,當我把上面的一切類型化的代碼,這是行不通的,但其他人做,如果代碼坐在它上面的工作,因爲它是顯示,但它上面的腳本不工作了。
我試過$.noConflict();
但它似乎什麼都沒做,所以我不確定我在這裏要做什麼。
有什麼建議嗎?
你可以檢查你的.js文件路徑是否正確?你能發佈你收到的任何錯誤消息嗎? – Vikram 2012-08-02 21:39:53
爲什麼你重寫$()如果你正在使用jQuery?函數$(eleid){}。如果你有jQuery手動設置Ajax調用也沒有什麼意義,因爲你可以使用$ .ajax()的跨瀏覽器方法。 – scrappedcola 2012-08-02 21:41:02
同意@scrappedcola,如果你已經有jQuery,那麼爲什麼重複功能。從頭開始寫東西是一回事,但你顯然已經擁有了jQuery,這就是你正在做的事(DOM查找,AJAX調用)。 – zatatatata 2012-08-02 21:43:43