jquery分页不工作
我目前正试图使插件与我的网站工作。当我加载页面时,我在使用firebug时没有收到任何错误,但是没有显示结果的数字。它在驾驶掩体 以下是我正在使用的JS文件: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++) { $(
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
});
});