如何使用jQuery调用此函数

时间:2012-05-11 21:43:07

标签: jquery

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

当使用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";
            }
        }
    }
});

3 个答案:

答案 0 :(得分:2)

你已经宣布了这些功能。没有你调用函数的位置,以便它执行。

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

$(document).ready(function() {
    function showcontent(){
    };
    showcontent();
});

答案 1 :(得分:1)

jQuery === JavaScript

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

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

答案 2 :(得分:0)

您有两个选项,内联JavaScript:

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

或在外部文件中链接javascript:

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

通常链接的文件位于head标签中,内联脚本位于底部。

如果您没有使用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