如何在没有页面刷新jquery的情况下刷新附加数据?

时间:2015-05-08 22:33:14

标签: javascript jquery

我试图在jquery中使用++来追加数据,我遇到了问题,如果我点击没有刷新页面的其他按钮,我需要再次刷新值,我该怎么做?当我点击时,var计数会增加,我想知道当我点击第二个按钮时是否可以重新开始这个计数。

var count='1';

$('#good').on('click',function(){
$.ajax({
			url: MyAjaxSearch.ajaxurl,
			type:'POST',
			cache: false,
			data:data,
		success: function(data){			
	  					  count++
						 }
  });
  }):

$('#second').on('click',function(){
  //refresh the var count, start from 1 again
  count++
  });

1 个答案:

答案 0 :(得分:0)

更新了答案 (根据OP的说明)

  

如果我点击第二个按钮

,我想再次重新开始计算
$('#second').on('click',function(){
    //refresh the var count, start from 1 again
    count = 1;
});

直播示例:

var count = 1;

$('#good').on('click', function() {
  count++;
  snippet.log("Incremented, count = " + count);
});
$('#second').on('click', function() {
  //refresh the var count, start from 1 again
  count = 1;
  snippet.log("Reset, count = " + count);
});
<input type="button" id="good" value="Increment">
<input type="button" id="second" value="Reset">
<!-- Script provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

或者,如果您希望第一个增加的数字为1,请从count = 0开始:

直播示例:

var count = 0;

$('#good').on('click', function() {
  count++;
  snippet.log("Incremented, count = " + count);
});
$('#second').on('click', function() {
  //refresh the var count, start from 0 again
  count = 0;
  snippet.log("Reset, count = " + count);
});
<input type="button" id="good" value="Increment">
<input type="button" id="second" value="Reset">
<!-- Script provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

原始答案

我将在这里对其进行全面猜测并说明在您的ajax回调中,您正在以某种方式修改页面,例如:

$('#good').on('click', function() {
    $.ajax({
        url: MyAjaxSearch.ajaxurl,
        type: 'POST',
        cache: false,
        data: data,
        success: function(data) {
            $("selector-for-some-elements").html("new content"); // <===
            current_page++
        }
    });
});

并且您希望单击其他元素以将内容重置为首次加载页面时的状态。

如果,那么您可以执行以下操作(请参阅注释):

var current_page = '1';
// *** A variable for remembering the original content
var originalContent;

$('#good').on('click', function() {
    $.ajax({
        url: MyAjaxSearch.ajaxurl,
        type: 'POST',
        cache: false,
        data: data,
        success: function(data) {
            // Grab the elements we're going to change
            var elementsToChange = $("selector-for-elements");

            // If we don't have saved content...
            if (!originalContent) {
                // Save the original content
                originalContent = elementsToChange.clone();
            }

            // Modify it
            elementsToChange.html(/*....*/);

            current_page++
        }
    });
});

$('#second').on('click', function() {
    // If we have original content...
    if (originalContent) {
        // Put it back
        $("selector-for-some-elements").replaceWith(originalContent);
        current_page = 1;
    }
});

显然,上述的许多方面会因你实际上要做的事情而有所不同,但由于你没有告诉我们这是什么,这是我能做的最好的......