2012-04-09 21 views
1

jQueryの何もChromeで動作していないようです。私のバージョンは18.0.1025.151 mです。 Javascriptをファイルにtest.jsです:jQueryがChromeで動作しない18

$('#paragraph').click(function() { 
$('#paragraph').hide(); 
}); 

とHTMLはこれです:

<!doctype html> 
<html lang="en"> 
<head> 
    <meta charset="utf-8"> 
    <title>jQuery Example</title> 

    <script src="jquery-1.7.1.min.js"></script> 
    <script src="test.js"></script> 
</head> 
<body> 
    <p id="paragraph">This is my paragragh 401!</p> 
</body> 
</html> 

私はそれをすることになっていますどこjQueryのファイルがあることを、トリプルチェックしています。基本的に、コードは、クリックすると段落が消えるようになっています。シンプルで構文が正しいと思われます。このような単純なコードを選んだのは、通常のjavascript文やコードがうまく動作する(alert()やその他)のだが、jQueryの中にはこれまで何も機能していなかったからだ。

ここでも奇妙な部分があります。 Chromeのデベロッパーツールでコンソールを使用するときに、まったく同じjQueryの情報を入力してEnterキーを押すと、実際に動作し、機能する方法が機能します。

これはChromeのセキュリティ構造などと関係がありますか?

編集:また、これらのファイルはまだサーバーにアップロードされていません。これはlocalhost上にあります(私はxammpを使っています)、おそらくそれが問題を明らかにするのに役立つかもしれません。

+0

質問タイトルによれば、この問題はChrome 18にのみ固有のものですか?他のすべてのブラウザで動作しますか? – j08691

+0

奇妙なことに、それはFirefoxとInternet Explorer 9で動作します。 – Sparx401

+1

JavaScriptはdocument.ready関数でラップされていますか? – Trent

答えて

3

文書にコードをラップするか、末尾の本文タグの前にtest.jsを入れます。

+0

うわー、体の終わりにスクリプトを置くことが効果的です!ありがとう、たくさんの人!このサイトは揺れる。:) – Sparx401

+1

エンド・ボディ・タグの前にスクリプトを置くのが必ずしも適切でない場合があるので、他の答えに応じてdocの準備をする方法を学ぶべきです。 –

2

DOMの準備が整う前に実行されています。それは次のようになります。

$(function(){ 
    $('#paragraph').click(function() { 
     $('#paragraph').hide(); 
    }); 
}); 

は、以下のコメントに対処するために:

http://api.jquery.com/ready/

.ready()メソッドは、一般的に匿名関数で使用されています

$(document).ready(function() { 
    // Handler for .ready() called. 
}); 

Wh ICHは呼び出すのと同じです:

$(function() { 
// Handler for .ready() called. 
}); 
+2

@iambriansreed私はあなたが間違っていると信じています。 :)私の編集を参照してください。 – asawyer

+0

ダング。学校。 – iambriansreed

+1

@iambriansreedいいえ心配ありません。私はcoffeecriptのバージョンがさらに好きです。それは単に '$ - >' – asawyer

0

あなたは、文書準備でそれをラップする必要があります。それはおそらくあなたの問題です。 $(this)を使用するか、セレクタをキャッシュすることもできます。

$(function() { 
    $('#paragraph').click(function() { 
     $(this).hide(); 
    }); 
});