0

我试图让代码运行但没有任何反应,因为我不确定我是否必须调用该函数或它是否自动运行。

当使用 window.onload 方法时,我会给函数一个名称 < init > 并且它会运行。用 jquery 调用它我不确定我是否应该有一个函数名?

请问我应该如何让代码运行。

// JavaScript Document
$(document).ready(function () {
    var xhr = false;
    var xPos, yPos;

    function () {
        var allLinks = document.getElementsByTagName("a");

        for (var i = 0; i < allLinks.length; i++) {
            allLinks[i].onmouseover = showPreview;
        }

    } //end function
    function showPreview(evt) {
        if (evt) {
            var url = evt.target;
        } else {
            evt = window.event;
            var url = evt.srcElement;
        }
        xPos = evt.clientX;
        yPos = evt.clientY;

        if (window.XMLHttpRequest) {
            xhr = new XMLHttpRequest();
        } else {
            if (window.ActiveXObject) {
                try {
                    xhr = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {}
            }
        }

        if (xhr) {
            xhr.onreadystatechange = showContents;
            xhr.open("GET", url, true);
            xhr.send(null);
        } else {
            alert("Sorry, but I couldn't create an XMLHttpRequest");
        }
        return false;
    }

    function showContents() {
        if (xhr.readyState == 4) {
            if (xhr.status == 200) {
                var outMsg = xhr.responseText;
            } else {
                var outMsg = "There was a problem with the request " + xhr.status;
            }
            var prevWin = document.getElementById('previewWin');
            prevWin.innerHTML = outMsg;
            prevWin.style.top = parseInt(yPos) + 2 + "px";
            prevWin.style.left = parseInt(xPos) + 2 + "px";
            prevWin.style.visibility = "visible";

            preview.onmouseout = function () {
                document.getElementById('preview').style.visibility = "hidden";
            }
        }
    }
});
4

3 回答 3

2

你已经声明了函数。没有你在哪里调用函数以便它执行。

您将无法从外部调用此函数,因为它们是在 document.ready 函数中声明的。做这样的事情

$(document).ready(function() {
    function showcontent(){
    };
    showcontent();
});
于 2012-05-11T21:49:11.033 回答
1

jQuery === JavaScript

因此,在 jQuery 中调用函数与在 JavaScript 中调用函数完全相同。

jQuery 所做的唯一一件事就是创建易于使用的方法和函数来加速您的 JavaScript 开发。例如,window.onload事件被事件替换$(document).ready()

于 2012-05-11T21:47:40.363 回答
0

你有两个选择,内联 JavaScript:

<script>...yourcode...</script>

或在外部文件中链接 javascript:

<script type="text/javascript" src="yourfile.js"></script>

通常链接的文件在头标签中,内联脚本在底部。

如果你不使用 jQuery,你还需要包含这个库http://jquery.com

function () {
    var allLinks = document.getElementsByTagName("a");

    for (var i = 0; i < allLinks.length; i++) {
        allLinks[i].onmouseover = showPreview;
    }

} //end function

真的应该是:

function () {
    var allLinks = $("a");

    allLinks.on("mouseover", showPreview);

} //end function
于 2012-05-11T21:55:22.050 回答