变量不改变jquery点击功能

时间:2011-08-23 14:08:39

标签: php javascript jquery mysql

我有一个db表中最近17个条目的列表,并希望使用jquery / ajax有一个下一个按钮,当你点击它时加载下17个条目。 它将17变量传递给.load,第一次工作正常(后来用作mysql限制),但后来我尝试用17增加start变量,这样下次点击它就会将34传递给.load (所以它再次加载17)但这不起作用,它只是在第二,第三等处再次加载相同的17。点击(所以没有任何变化)。阅读其他问题这应该是使用全局变量的正确方法,方法是使用var设置它并在函数内部使用var而不使用它。

<script>  
var start = 17;  
var loadUrl = '<?php echo site_url('welcome/battles'); ?>';  
$("#latestbattlesnext").click(function () {  
    $('#left').load(loadUrl + "/" + start);  
    start = start + 17;  
});  
</script>  

5 个答案:

答案 0 :(得分:0)

您的网站是否正在刷新任何这些负载?只要加载的页面被刷新(显然),<script>标签中的任何内容都将被刷新。

就我所知,这是正确的做法。

也许仔细检查这一行:

$('#left').load(loadUrl + "/" + start);

确保它没有重新加载页面上的任何<script>

答案 1 :(得分:0)

语法是对的,你不是在.load函数中设置start var吗?

尝试更改给定脚本中的start名称。

答案 2 :(得分:0)

试试这个方法:

var start = 17;  
var loadUrl = '<?php echo site_url('welcome/battles'); ?>';  
$("#latestbattlesnext").click(function () {
    $.ajax({
        url: loadUrl + '/' + start,
        type: 'get',
        dataType: 'html',
        success: function(data){
            $('#left').html(data);
            start = start + 17;
        },
        error(jqXHR, textStatus, errorThrown){
            console.log(textStatus + ' -- ' + errorThrown);
        }
    });    
});

答案 3 :(得分:0)

在调用load或回调之前增加start变量。

var start = 17;  
var loadUrl = '<?php echo site_url('welcome/battles'); ?>';  
$("#latestbattlesnext").click(function () {  
    start = start + 17;
    $('#left').load(loadUrl + "/" + start);  
}); 

或者

var start = 17;  
var loadUrl = '<?php echo site_url('welcome/battles'); ?>';  
$("#latestbattlesnext").click(function () {  
    $('#left').load(loadUrl + "/" + start, function() {
         start = start + 17;
    });
}); 

答案 4 :(得分:0)

您可以尝试使用加载回调

var start = 17;  
var loadUrl = '<?php echo site_url('welcome/battles'); ?>';  
$("#latestbattlesnext").click(function () {  
   $('#left').load(loadUrl + "/" + start,function(){start = start + 17;});  
});