2012-02-20 8 views
1

jQuery関数の呼び出しに問題があります。jQuery基本関数の使用

読み込み中ですが、別のページを呼び出すと何も動作しません。

私のコードは次のとおりです。

JS:

$(document).ready(function(){ 
    $("#content").load('page.php'); 

    $("#submenu").click(function() { 
     alert('Hello'); 
    }); 
}); 

HTML:

<div id="content"></div> 

page.php

<div id="submenu"> 
    <ul> 
     <li><a href="#profile">profile</a></li> 
     <li><a href="#logout">logout</a></li> 
    </ul> 
</div> 
+0

すべてのページにjquery.jsライブラリを含めていますか?あなたは、動作していないページのhtml/jsを表示できますか? – JohnFx

答えて

2

私はあなたが何を意味するかわからないんだけど」私が別のページを呼んだとき "、しかしあなたがoロード中のコンテンツ内の要素のセットアップイベントハンドラがロードされるまで待機する必要があります。.load() methodは非同期です。つまり、即座に実行された後(つまり、ロードへの応答を待つことなく)コードを意味します。それ一度.click()ハンドラは、移動を完了したことを​​方法の完全なコールバックにあなたのコードの一部:

また
$(document).ready(function(){ 
    $("#content").load('page.php', function() { 
     $("#submenu").click(function() { 
      alert('Hello'); 
     }); 
    }); 
}); 

お取り扱い委任イベントを使用して、コンテナオブジェクトにクリックハンドラをバインドすることができます。

$(document).ready(function(){ 
    $("#content").load('page.php'); 

    $("#content").delegate("#submenu", "click", function() { 
     alert('Hello'); 
    }); 
}); 

を参照してください最新のバージョンのjQueryを使用している場合は.delegate()ではなく.on() methodを使用する必要があることに注意してください。 (または、あなたが本当に古いバージョンのjQueryを持っている場合は、.live()を使用する必要があります)

関連する問題