Javascript互相干扰

时间:2012-08-02 21:36:51

标签: javascript ajax jquery

由于我对Javascript和Jquery知之甚少,所以我希望能够在这里得到答案。

以下是我文档<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();,但它似乎没有做任何事情,所以我不确定我要做什么。

有什么建议吗?

2 个答案:

答案 0 :(得分:2)

尝试类似:

$j = jQuery.noConflict();

然后您可以在需要时使用$j来引用jQuery对象。

答案 1 :(得分:0)

我遇到了jQuery插件以某种方式发生冲突的问题。 我将两者都加载到html文档的头部,在连续分隔的脚本标记区域之间。然后我用了:

window.onload = function() {function01(); function02();};

以有序的方式单独加载每个功能。

这次对我有用。