jQuery ajax回调函数在追加接收数据并收到jquery脚本后停止工作

时间:2014-07-16 10:12:39

标签: javascript jquery html ajax

我有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不起作用。显示所有元素但脚本不起作用。

1 个答案:

答案 0 :(得分:0)

我不完全确定,但我认为第一个问题是因为你不能使用append附加一个html文本。你可以附加元素,但我认为直接html不是一个好主意。请尝试使用jQuery("#newpages").html(jQuery("#newpages").html() + data);代替

关于第二个问题,据我所知,您将在调用后将这些脚本附加到文件中?在Document.Ready已经通过之后不是电话吗?您正确附加脚本但脚本是在已经通过的document.ready之后执行的吗?对不起,如果我没有正确理解chronololy。