我有jQuery ajax回调的两个问题。 我有以下jQuery ajax调用代码:
<div id="newpages"></div>
<script type="text/javascript">
<!--
var page = 1;
var max_pages_number = <?php echo $max_pages_number; ?>;
jQuery(document).ready(function(){
jQuery("#registry_show_more").click(function(){
if(page < max_pages_number) {
jQuery.ajax({
type: 'POST',
url: '<?php echo admin_url('admin-ajax.php'); ?>',
data: {
action: 'registry_paggination',
page: page+1,
plusid: 18,
page_size: <?php echo $page_size; ?>,
category: <?php echo $kategoria; ?>,
filtr: '<?php echo $filtr; ?>',
access: <?php echo $access; ?>,
},
success: function(data, textStatus, XMLHttpRequest){
page++;
if(page >= max_pages_number) {
jQuery("#registry_show_more").hide();
}
if(data) {
alert('a');
jQuery("#newpages").append(jQuery("#newpages").html() +data);
alert('b');
}
},
error: function(MLHttpRequest, textStatus, errorThrown){}
});
}
});
});
//-->
</script>
<div style="display: block;" id="registry_show_more">
<a class="w-blog-entry-more g-btn type_default size_small">WCZYTAJ WIĘCEJ</a>
</div>
第一个问题。在ajax回调中收到数据后,第一个警报('a')显示,然后将数据附加到div =“newpages”的div。但第二个警报('b')不显示。
第二个问题。在ajax.php文件中,我有一部分代码如下:
<script type="text/javascript">
<!-- plus
jQuery(document).ready(function(){
jQuery("#bp<?php echo $row->registry_id; ?>").click(function(){
if(!jQuery.cookie('regvote<?php echo $row->registry_id; ?>')) {
jQuery.cookie('regvote<?php echo $row->registry_id; ?>','+', { expires: 1 });
jQuery.ajax({
type: 'POST',
url: '<?php echo admin_url('admin-ajax.php'); ?>',
data: {
action: 'registryVote',
plusid: <?php echo $row->registry_id; ?>,
},
success: function(data, textStatus, XMLHttpRequest){
jQuery("#vc<?php echo $row->registry_id; ?>").html(data);
},
error: function(MLHttpRequest, textStatus, errorThrown){}
});
}
});
});
//-->
</script>
<div class="post twc-post type-post status-publish format-standard hentry w-blog-entry">
<div id="votepanel<?php echo $row->registry_id; ?>" style="width: 35px; float: left;">
<a style="cursor:pointer; cursor:hand" id="bp<?php echo $row->registry_id; ?>"><i class="fa fa-plus-square" style="cursor: hand !important; color: #bd2029; font-size: 32px;"></i></a>
<h6 id="vc<?php echo $row->registry_id; ?>" style="margin: 0; padding: 0;"><?php echo number_format((double)$row->value,1); ?></h6>
<a style="cursor:pointer; cursor:hand" id="bm<?php echo $row->registry_id; ?>"><i class="fa fa-minus-square-o" style="color: #bd2029; font-size: 22px;"></i></a>
</div>
<script type="text/javascript">
<!-- minus
//jQuery(document).ready(function(){
jQuery("#bm<?php echo $row->registry_id; ?>").click(function(){
if(!jQuery.cookie('regvote<?php echo $row->registry_id; ?>')) {
jQuery.cookie('regvote<?php echo $row->registry_id; ?>','-', { expires: 1 });
jQuery.ajax({
type: 'POST',
url: '<?php echo admin_url('admin-ajax.php'); ?>',
data: {
action: 'registryVote',
minusid: <?php echo $row->registry_id; ?>,
},
success: function(data, textStatus, XMLHttpRequest){
jQuery("#vc<?php echo $row->registry_id; ?>").html(data);
},
error: function(MLHttpRequest, textStatus, errorThrown){}
});
}
});
// });
//-->
</script>
当我将它们附加到div“newpages”时,脚本MINUS和PLUS不起作用。显示所有元素但脚本不起作用。
答案 0 :(得分:0)
我不完全确定,但我认为第一个问题是因为你不能使用append附加一个html文本。你可以附加元素,但我认为直接html不是一个好主意。请尝试使用jQuery("#newpages").html(jQuery("#newpages").html() + data);
代替
关于第二个问题,据我所知,您将在调用后将这些脚本附加到文件中?在Document.Ready已经通过之后不是电话吗?您正确附加脚本但脚本是在已经通过的document.ready之后执行的吗?对不起,如果我没有正确理解chronololy。