2012-05-11 10 views
0

コードを実行しようとしていますが、何も起こりません。関数を呼び出す必要があるかどうか、または自動的に実行されます。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"; 
      } 
     } 
    } 
}); 
+1

私に番号を付けて、..私は彼に電話します! (あなたのQやコードからはっきりと分かりませんが、もっと具体的にしてください) –

+0

$(document)の代わりにコードの先頭に関数名を追加していたら...関数init()を呼び出し、window.onload init()で関数を呼び出します。それはコード全体を実行します。 – StudentRik

+1

'function(){'は有効なJavaScriptではありません。そのような名前のない関数を作成することはできません。 –

答えて

2

あなたは関数を宣言しました。関数を呼び出して実行する場所はありません。

この関数は、document.ready関数内で宣言されているので、外部から呼び出すことはできません。インラインJavaScriptをあなたは2つのオプションがあり、この

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

ありがとうございます。それは働きます:-) – StudentRik

1

jQueryの===のJavaScript

だからjQueryの関数を呼び出すと、正確なJavaScriptでの関数を呼び出すのと同じです。

jQueryが行う唯一のことは、使いやすいメソッドと関数を作成してJavaScript開発をスピードアップすることです。たとえば、window.onloadイベントは$(document).ready()イベントに置き換えられます。

+0

だからどこで関数を呼び出すのですか? htmlで?スクリプトの一番下に?? – StudentRik

+0

あなたはどのようにそれを稼働させるでしょうか? – StudentRik

+0

@StudentRik '$(document).ready()'関数は通常の 'init()'関数です。あなたが '普通の' JSでinit関数に配置するものは、jQueryを使ってready関数に置きます。 –

0

のようなものを実行します。

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

するか、外部ファイルにリンクされたJavaScript:

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

通常、リンクされたファイルは、headタグであり、インラインスクリプトは一番下にあります。

あなたはjQueryのをunsingしている場合も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 
+0

* "通常、リンクされたファイルは先頭のタグにあり、インラインスクリプトは最下部にあります。"また、両方のタグで 'type'属性は必要ありません。 –

+0

個人的な好み、実際には、ほとんどの場所は下に配置することをお勧めしますが、expierenceからは、少なくともjQueryライブラリをドキュメントの先頭に置き、JSファイル – Bloafer

関連する問題