将ajax响应保存到不在DOM上的元素
我在firts 10页面上有一些结果,然后使用load more result按钮,将上一个报告的id发送到PHP页面 我在这里读到,我必须使用.on,因为.live已经贬值,所以通过AJAX添加到DOM中的新元素上的click事件可以工作 我的问题是。。。我可以在一个不在初始DOM中的div上以某种方式显示通过AJAX提供的内容吗将ajax响应保存到不在DOM上的元素,ajax,jquery,Ajax,Jquery,我在firts 10页面上有一些结果,然后使用load more result按钮,将上一个报告的id发送到PHP页面 我在这里读到,我必须使用.on,因为.live已经贬值,所以通过AJAX添加到DOM中的新元素上的click事件可以工作 我的问题是。。。我可以在一个不在初始DOM中的div上以某种方式显示通过AJAX提供的内容吗 $("#jokesWrap").on('click', 'a.share', function(event) { var joke_id = $(
$("#jokesWrap").on('click', 'a.share', function(event) {
var joke_id = $(this).attr('name');
var msgbox = $("#success[name='" + joke_id + "']");
$("#post-to-wall[name='" + joke_id + "']").hide();
msgbox.html('<img src="includes/images/load.gif"> Loading...');
$.ajax(
{
type: "POST",
url: "includes/php/ajax.php",
data: "joke_id=" + joke_id,
success: function(msg)
{
if(msg == 'OK')
{
msgbox.html('<img src="includes/images/success.png" /> DONE!');
}
} // function(msg)
}); // ajax
event.preventDefault(); });
这是HTML部分:
<div id="jokesWrap">
<div class="joke" id="1">
<p class="txt">
some text
</p>
<div class="joke-options-bar">
<a href="#" id="post-to-wall" class="share tip-this floatL" name="1" title="Post to wall">Post to wall</a>
<span id="success" name="1" class="share floatL"></span>
<br class="floatClear" />
</div>
</div>
// the above area comes through loop from the ajax call
PS:一切正常:ajax调用tetxt被发布到墙上,而发布到墙上则被隐藏。住宿。。。成功的信息没有显示出来
PS2:加载。。。文本和成功消息在我单击AJAX调用之前DOM上的链接时显示,因为成功就在那里
有人帮忙吗?谢谢 在写入之前将其添加到DOM?只要在执行AJAX的成功回调时DOM中存在该元素,就可以使用jQuery来选择和操作它,方法与最初加载页面时DOM中存在的元素相同。或者,您可以使用jQuery创建元素作为成功回调的一部分,使用AJAX请求的响应对其进行操作,然后将新创建的元素附加到DOM中所需的位置。大概是这样的:
var div = $('<div/>').attr('id', 'new-div-id').html(data);
$('body').append(div);
这将创建一个新的div,给它一个新的div id,然后将其innerHTML设置为任何数据(假设data是包含来自AJAX的响应文本的变量的名称),最后将其作为页面标记的新子项追加
看看对这个问题的编辑:使用id属性指定的元素id在整个文档中必须是唯一的;这包括后来作为AJAX回调的一部分添加的元素。不能有多个id为success的元素-通过取消name属性,并将值添加到id的末尾,使它们唯一,这样就可以获得success1、success2、,etc作为您的id。查看对该问题的编辑:使用id属性指定的元素id必须在整个文档中是唯一的;这包括后来作为AJAX回调的一部分添加的元素。不能有多个id为success的元素-通过取消name属性,将值添加到id的末尾,使它们唯一,这样您就可以将success1、success2等作为id,然后将数据附加到successuniqueID?是,假设这是您要附加到的元素的正确ID,那么更改如下:var msgbox=$success[name='+joke_ID+'];收件人:var msgbox=$success+joke_id+?在末尾附加空字符串是不必要的success+joke_id可以很好地工作,但这是一般的想法。