2009-04-08 17 views
0

私は単純な単一ページ設定をしています。ルートフォルダの下には、3つのサブフォルダ(js、css、およびimages)があります。ルートフォルダには、私は次の内容のindex.htmlページています次のjqueryスクリプトが動作しないのはなぜですか?

<html> 
<head> 
<title></title> 
<script language="javascript" src="js/jquery-1.3.2.min.js"></script> 
<script language="javascript" src="js/myscript.js"></script> 
</head> 
<body> 
<a onclick="doSomething()" href="#" class="doSomething">Click!</a> 
</body> 
<html> 

myscript.jsは、次のコードが含まれています

$('a.doSomething').click(function(){ 
//Do Something here! 
alert('You did sometihng, woo hoo!'); 
}); 

私はリンクをクリックすると、何も起こりません。私は何が欠けていますか?コードの周り

+0

ヒント:href = "#"をしないでください。必要ではありません(しばしば面倒です)。ハンドポインタを表示するには、CSSを使用してください。 –

+0

ちょうど今チュートリアルを見て、それを逐語的に入力してください。 – Xaisoft

+0

心配する必要はなく、将来の参考になるだけのヒントです。 –

答えて

10

ラップdocument.ready:

$(document).ready(function() { 
    $('a.doSomething').click(function(){ 
     //Do Something here! 
     alert('You did sometihng, woo hoo!'); 
     return false; // return false to prevent default action 
    }); 
}); 

それが今であるとして、あなたはまだDOMに存在しない要素にイベントをバインドしようとしています。

また、なぜあなたはリンク自体にonclickがあるのか​​わかりません.jQueryの全体的なポイントは、それらの醜いインラインイベントをそこから取り除き、javascriptできれいにバインドできるようにすることです。これを行う場合:

<a href="#" class="doSomething">yay click me</a> 

そして、上記のコードを使用すると正常に動作するはずです。

+0

それは "コードの周りにdocument.readyラップ"ではありませんか? – Javier

+0

Paulに感謝します。 jqueryを正しく使用する方法に関するチュートリアルに従っています。それは控えめなjavascriptを使用して話しています。私はどのようにonclickでそれをするか分からない。あなたが興味を持っているなら、ここにリンクがあります: http://www.smashingmagazine.com/2008/09/16/jquery-examples-and-best-practices/ – Xaisoft

+0

lol、あなたは私がそれを投稿する前に私の質問に答えました。ありがとうございました。 – Xaisoft

0

最初は "doSomething"という名前の関数がないと思っていました。とにかく、あなたのセレクターがアンカータグを見つけることを期待していました。しかし、それは起こりません。スクリプトが実行されているとき、アンカーはまだDOMに追加されていません。

関連する問題