0

コードを実行しようとしていますが、関数を呼び出す必要があるのか​​、それとも自動的に実行されるのかわからないため、何も起こりません。

window.onloadメソッドを使用する場合、関数に<init>という名前を付けて、実行します。jquery imでそれを呼び出すと、関数名が必要かどうかわかりませんか?

コードを実行するにはどうすればよいですか。

// 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 という 2 つのオプションがあります。

<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
于 2012-05-11T21:55:22.050 に答える