我会尽量解释清楚。我所做的是使用 ajax 加载页面的一部分,然后使用简单的 jquery 访问加载了 ajax 的那部分 dom。在 main.html 我加载了 dom 部分,dom 部分来自一个 php 文件,它只是回显我需要的 html,可以说它在 main.html 中称为 call_me.php 的 php 文件已经加载了 js,所以基本上,由于某种原因,它无法访问加载 ajax 的 dom。我所做的工作是将我需要在那个dom部分上工作的js放在call_me.php中那个js的一部分没有被call_me.php回显,并且由于某种原因它起作用了,我在其中搜索了js代码检查元素,根本找不到它,有人可以告诉我发生了什么吗?或向我解释这是如何工作的?我使用的ajax代码是:
$('.general').click(function(){
$('.contents').html("");
$.ajax({
type: 'GET',
url: 'src/user_setting.php',
data: 'target='+$('.user_target_id').val(),
success: function(msg){
$('.contents').html(msg);
}
});
});
这是php代码
<?php
require '../config/global.php';
if (isset($_GET['target']) && isset($_SESSION['userId'])) {
$target = security($_GET['target']);
$from = security($_SESSION['userId']);
echo<<< html
<input name = "target" type = "hidden" class = "target" value = "$target">
<input name = "from" type = "hidden" class = "from" value = "$from">
<div class ="container form-container2">
<div class="alert alert-success confirm">
<a class="close" data-dismiss="alert">×</a>
Mesajul a fost trimis cu success !
</div>
<div class="alert alert-error confirm-error">
<a class="close" data-dismiss="alert">×</a>
Mesajul nu poate fi trimis !
</div>
<table>
<tr>
<td><span>Subiect</span></td>
<td><input name = "title" class = "span3 title" type = "text" ></td>
</tr>
<tr>
<td colspan="2"><textarea name = "body" class = "span5 msg" ></textarea></td>
</tr>
<tr>
<td><button class = "btn btn-inverse send">Trimite mesaj</button></td>
</tr>
</table>
</div>
html;
}
?>
<script type="text/javascript">
$(".confirm").hide();
$(".confirm-error").hide();
$('.send').click(function(){
$.ajax({
type: "POST",
url: "src/send_message.php",
data: $(".target").serialize()+"&"+$(".from").serialize()+"&"+$(".title").serialize()+"&"+$(".msg").serialize(),
success: function(data)
{
if (data == "ok") {
$(".confirm").slideDown();
$(".confirm-error").hide();
$(".title").val("");
$(".msg").val("");
}else{
$(".confirm-error").slideDown();
}
}
});
});
</script>
如果在加载 ajax 的 dom 上使用 javascript 有更好的方法,请告诉我,我是 web 开发的新手