jqueryを使用して同じサイト内にあるsomepage.phpを呼び出してこのindex.htmlページのコンテンツをロードするindex.htmlページがあります。
したがって、これは意図されたページのロードシーケンスです:index.html-> somepage.php-> submit.php(送信ボタンがクリックされた場合)
index.htmlには「main-div」のみがあり、そのようなコンテンツはありません。somepage.phpが呼び出されると、phpスクリプトを実行して「main-div」の内容が読み込まれます。main-divには、送信ボタンのある小さなフォームのサブdivが含まれています。jQueryを使用して、送信ボタンがクリックされたかどうかを確認します。クリックすると、submit.phpスクリプトが呼び出されます。
これはベアボーンコードです:
<!DOCTYPE html>
<html>
<head>
<script src="js/jquery.js"></script>
<script>
$('document').ready(function(){
$("#main-div").load("http://www.someurl.com/somepage.php");
$('#item-submit').click(function(){
jsURL = $('#input').val();
submit(jsURL);
});
function submit(jsURL){
$.get(
'http://www.someurl.com/submit.php',
{ item: jsURL },
function(data){
if(data=="success")
{
$('#submit-status').html(data);
}
else
{
$('#submit-status').html(data);
}
}
);
}
});
</script>
</head>
<body>
<div id="main-div"> </div>
</body>
</html>
ここで問題:index.htmlページが読み込まれ、すべてが正しく表示されます(送信ボタンのある小さなフォーム、他のすべてのmain-divコンテンツ、すべてが表示されます)。ただし、送信ボタンはsubmit.phpスクリプトを呼び出さないため、クリックイベントに対応するjQueryコードが登録されていないと思います。
私はjQueryにかなり慣れていません。これは、jQuery .ready()でコードを「順序付け」した方法と関係がありますか?関数が呼び出される前にDOMの準備ができていないことと関係がありますか、それともjQueryの.load()に問題がありますか?