jquery分页不工作

jquery分页不工作,jquery,html,pagination,jquery-pagination,Jquery,Html,Pagination,Jquery Pagination,我目前正试图使插件与我的网站工作。当我加载页面时,我在使用firebug时没有收到任何错误,但是没有显示结果的数字。它在驾驶掩体 以下是我正在使用的JS文件: function handlePaginationClick(new_page_index, pagination_container) { // This selects 20 elements from a content array for(var i=new_page_id;i<3;i++) { $(

我目前正试图使插件与我的网站工作。当我加载页面时,我在使用firebug时没有收到任何错误,但是没有显示结果的数字。它在驾驶掩体

以下是我正在使用的JS文件:

function handlePaginationClick(new_page_index, pagination_container) {
    // This selects 20 elements from a content array
    for(var i=new_page_id;i<3;i++) {
    $('#MyContentArea').append(content[i]);
    }
    return false;
}

// First Parameter: number of items
// Second Parameter: options object
$("#News-Pagination").pagination(122, {
    items_per_page:3, 
    callback:handlePaginationClick
});
函数handlePaginationClick(新页面索引、分页容器){
//这将从内容数组中选择20个元素

对于(var i=new_page_id;i在阅读代码并将其放入文件后,我注意到,根据我收集的信息,在上面的代码中,
new_page_id
应该是
new_page_index
。而且,
内容
没有定义。你可以发布更多的代码吗?它似乎引用的是不存在或定义的变量在代码的其他地方。一旦我能得到这些信息,我将很乐意提供帮助

更新:

因此,这里的基本问题是,您试图过于接近。在自述文件中,
content
只是一个示例变量,而不是回调函数的实际内置值。要在页面中使用它,您需要编写一些代码。基本问题是,您试图将信息从PHP传递到Javascript。为了正确地执行此操作,您需要更新PHP文件以同时处理内联Javascript,并使其发出如下语句:


$(“#新闻分页”)。分页((
每页项目:20,
回调:handlePaginationClick
)
);

其中,
NUM\u OF_ARTICLES
是您从数据库中获取的项目数。您可以通过在($row=$result->fetch\u object()){$id=$row->id;..
“循环中增加一个变量来获取此数字

此外,包含要将数据附加到的div的默认对象作为回调的参数提供,即
$(分页容器)
$(“#新闻分页”)
,因此不需要再次使用DOM选择器获取它

最后,这是最难的部分,您需要将之前从DOM输入的所有文本扫描到JavaScript数组中

但是

以下是一种可以在JS中实现所有功能的方法,它不是最好的方法,但目前是最快的方法:

// make them global to access them from the console and use them
// in handlePaginationClick
var maini_s;
var mi_s;
var num_of_arts;
var ipp;

function handlePaginationClick(new_page_index, pagination_container) {
    var pc = $(pagination_container);
    pc.children('div.maini').remove();
    pc.children('div.mi').remove();
    for(var i=new_page_index*ipp; i < (new_page_index+1)*ipp ;i++) {
        if (i < num_of_arts) {
            pc.append(maini_s[i]).append(mi_s[i]);
        }
    }
    return false;
}

$(document).ready(function() {
    maini_s = $('div.maini').remove();
    mi_s = $('div.mi').remove();
    num_of_arts = maini_s.length;
    ipp = 3;

    // First Parameter: number of items
    // Second Parameter: options object
    $("#News-Pagination").pagination(11, {
        items_per_page:ipp, 
        callback:handlePaginationClick
    });
});
//使它们成为全局的,以便从控制台访问并使用它们
//手握
var maini_s;
var mi_s;
艺术的价值;
var-ipp;
函数handlePaginationClick(新页面索引、分页容器){
var pc=$(分页容器);
pc.children('div.maini').remove();
pc.children('div.mi').remove();
对于(var i=新页面索引*ipp;i<(新页面索引+1)*ipp;i++){
如果(i<艺术的数量){
pc.append(maini_s[i])。append(mi_s[i]);
}
}
返回false;
}
$(文档).ready(函数(){
maini_s=$('div.maini').remove();
mi_s=$('div.mi').remove();
艺术数量=主要长度;
ipp=3;
//第一个参数:项目数
//第二个参数:选项对象
$(“#新闻分页”)。分页(11{
每页项目:ipp,
回调:handlePaginationClick
});
});

除了上面的代码之外,结果是通过一个php文件创建的,然后显示在主页上名为“output listings”的div中

以下是文件(buy.functions.php):


正如你所看到的,我把#MyContentArea div放到了这个文件中。我不确定这是否是正确的位置

下面是完整的JS文件(listing.JS):

$(文档).ready(函数(){
函数handlePaginationClick(新页面索引、分页容器){
//这将从内容数组中选择20个元素

对于(var i=new\u page\u id;i尝试将
函数handlePaginationClick()
置于
$(document.ready()
之外

函数真的不应该嵌入
$(document).ready()
中,除非有理由将它们放在那里。将它们保留在全局范围内通常可以消除我的问题

编辑:
$(“#新闻分页”).Pagination()
,但是,如果我没有弄错的话,应该在
$(document).ready()
中,因为它正在调用函数


另外,新页面id没有在任何地方定义。它从哪里来?

它是否在文档就绪函数中?刚刚添加了就绪函数,现在显示数字,但我在firebug-->新页面id没有定义[Break on this error]中发现此错误(var i=new_page_id;iI将new_page_id更改为new_page_index,这消除了firebug的错误,但是当我单击数字时,它们什么也不做,它们只是将单击状态更改为active和not active。感谢您的详细解释,我真的很感激。我有点不确定如何添加到我的php文件中。我是否创建了一个变量,该变量将计算数据库中的文章数,然后将其包含在js文件中?您不必在PHP中更改任何内容。我在您之前发布的静态HTML上执行了此操作,并且成功了。这是一个纯js解决方案。我发布的原始内容仅与您希望在PHP中执行的内容相关。这取决于您是否满意e with.它现在对你有用吗?它现在工作得很好。非常感谢你的帮助。不客气。祝你好运!如果你正在寻找一些好的jQuery参考资料,请访问learningjquery.com和jqueryfordesigners.com。尝试将该函数置于就绪fn之外,但似乎什么都没有发生。你在哪里看到了编辑页面id?或者您正在谈论新页面id?抱歉,更正。是的,看起来您引用了一个未定义的变量。假设这都是您的代码,我想说
for(var I=new\u page\u id;I
// make them global to access them from the console and use them
// in handlePaginationClick
var maini_s;
var mi_s;
var num_of_arts;
var ipp;

function handlePaginationClick(new_page_index, pagination_container) {
    var pc = $(pagination_container);
    pc.children('div.maini').remove();
    pc.children('div.mi').remove();
    for(var i=new_page_index*ipp; i < (new_page_index+1)*ipp ;i++) {
        if (i < num_of_arts) {
            pc.append(maini_s[i]).append(mi_s[i]);
        }
    }
    return false;
}

$(document).ready(function() {
    maini_s = $('div.maini').remove();
    mi_s = $('div.mi').remove();
    num_of_arts = maini_s.length;
    ipp = 3;

    // First Parameter: number of items
    // Second Parameter: options object
    $("#News-Pagination").pagination(11, {
        items_per_page:ipp, 
        callback:handlePaginationClick
    });
});
<?php
function outputListingsTable()
{
    $mysql = new mysqli('localhost', 'root', 'root', 'ajax_demo') or die('you\'re dead');
    $result = $mysql->query("SELECT * FROM explore") or die($mysql->error);

if($result) 
{
        echo "<div id=\"MyContentArea\" class=\"site-listings\"> \n";
                                while($row = $result->fetch_object()) 
                                {
                                        $id = $row->id;
                                        $siteName = $row->site_name;
                                        $siteDescription = $row->site_description;
                                        $siteURL = $row->site_url;
                                        $sitePrice = $row->site_price;

                                        echo "<div id=\"main-info-" .$id. "\" class=\"maini\"> \n";
                                        echo " " . $siteName . " \n";
                                        echo " " . $siteURL . " \n";
                                        echo " <a id=\"link-" . $id . "\" class=\"more-info-link\" href=\"#\">More info</a> \n";      
                                        echo "</div> \n";

                        echo "<div id=\"more-info-" .$id. "\" class=\"mi\"> \n";
                                //echo "            <div id=\"details\" class=\"more-information\">";
                                echo "              <span class=\"description\">" . $siteDescription . "</span> \n";
                                //echo "            </div> \n";         
                        echo " </div> \n";
                                }
echo "</div> \n";           

    }

}

?>
$(document).ready(function() {
function handlePaginationClick(new_page_index, pagination_container) {
    // This selects 20 elements from a content array
    for(var i=new_page_id;i<3;i++) {
    $('#MyContentArea').append(content[i]);
    }
    return false;
}

// First Parameter: number of items
// Second Parameter: options object
$("#News-Pagination").pagination(11, {
    items_per_page:3, 
    callback:handlePaginationClick
});
});