html输入页码跳转,WordPress分页导航添加输入页码跳转功能

在年初的时候给一个用户做网站用到了一个输入页码跳转的功能,用户如果需要跳转到那一页只需在输入框中输入相应的页面点击确定就可以跳转到指定页面,这个功能非常棒吧,下面就看看如何使用 php 和 jquery 来实现这个功能。当然我之前自己写的那个是用 JS 实现的功能也比较简单,今天在看到这个 jquery 版的写的很不错,在这里分享给大家。

gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==

导航代码

下面的页码输出函数显示出来的效果见上图:

function chenxing_pagenavi() {

global $wp_query, $wp_rewrite;

$wp_query->query_vars['paged'] > 1 ? $current = $wp_query->query_vars['paged'] : $current = 1;

$pagination = array(

'base' => esc_url_raw( str_replace( 999999999, '%#%', get_pagenum_link( 999999999, false ) ) ),

'format' => ",

'total' => $wp_query->max_num_pages,

'current' => $current,

'show_all' => false,

'type' => 'plain',

'end_size'=>'1',

'mid_size'=>'3',

'prev_text' => '上一页',

'next_text' => '下一页'

);

$total_pages = $wp_query->max_num_pages;

if( !emptyempty($wp_query->query_vars['s']) )

$pagination['add_args'] = array('s'=>get_query_var('s'));

echo '

';

}

大家可以根据自己的需要修改上面的代码来改变输出的格式,在需要显示的位置加上<?php chenxing_pagenavi(); ?>进行调用,再以 css 修饰前台的布局就 OK 了,下面我们还要实现跳转的功能。

jQuery 代码

既然是输入页码跳转,那肯定要用到 js。下面的 js 代码来自阿树博客,请将 js 代码加入到 js 文件中即可,当然需要 jquery 支持。思路很简单,就是在点击“跳转”按钮的时候,获取输入的页码,再获取任意一个页码链接,将页码数字替换掉即可。本教程的页码链接类型为:http://www.qq301/******/page/4 这种,如果你的不是这种,请修改下面 js 里面的页码替换部分。

jQuery(document).ready( function($){

//.page_nav a.go_btn为确认按钮,点击执行

$('.page_nav a.go_btn').on('click',function(event){

event.preventDefault(); //取消默认动作

page_input = $('#page_input'); //获取输入框的值

page_max = page_input.attr('max'); //获取输入框中的max属性的值,就是最大页码

if(page_input.val()=="){

alert('请输入页码');

return false;

}

if((page_input.val()<1) || (page_input.val()>page_max)){

alert('请输入1至' + page_max + '之间的数字');

return false;

}

page_links = $('.page-nav a').eq(1).attr('href'); //从页码列表中获取任意一个链接,此处获取第一个链接

go_link = page_links.replace(/\/page\/([0-9]{1,})/g, '/page/'+page_input.val()); //将页码数字替换

location.href = go_link; //跳转

});

$.fn.onlyNum = function onlyNum() {

$(this).keypress(function (event) {

var eventObj = event || e;

var keyCode = eventObj.keyCode || eventObj.which;

if ((keyCode >= 48 && keyCode <= 57))

return true;

else

return false;

}).focus(function () {

//禁用输入法

this.style.imeMode = 'disabled';

}).bind("paste", function () {

//获取剪切板的内容

var clipboard = window.clipboardData.getData("Text");

if (/^\d+$/.test(clipboard))

return true;

else

return false;

});

};

//#page_input为页码输入框

$('#page_input').onlyNum();

});

这段 jQuery 已经集成了对应的分页跳转功能以及让输入框只能输入数字的限制,这样用户体验应该会比较棒。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的 HTML 代码示例,实现了分页功能的要求: ```html <!DOCTYPE html> <html> <head> <title>分页功能示例</title> <style> .pagination { display: inline-block; } .pagination a { color: black; float: left; padding: 8px 16px; text-decoration: none; border: 1px solid #ddd; margin: 0 4px; } .pagination a.active { background-color: #4CAF50; color: white; border: 1px solid #4CAF50; } .pagination a.disabled { pointer-events: none; opacity: 0.6; } </style> </head> <body> <div class="pagination"> <?php // 分页相关代码 $totalPages = ceil($totalRecords / $perPage); // 计算总页数 $currentPage = isset($_GET['page']) ? $_GET['page'] : 1; // 获取当前页码 // 显示上一页 if ($currentPage > 1) { echo '<a href="?page=' . ($currentPage - 1) . '">上一页</a>'; } else { echo '<a class="disabled">上一页</a>'; } // 显示页码 for ($i = 1; $i <= $totalPages; $i++) { if ($i == $currentPage) { echo '<a class="active">' . $i . '</a>'; } else { echo '<a href="?page=' . $i . '">' . $i . '</a>'; } } // 显示下一页 if ($currentPage < $totalPages) { echo '<a href="?page=' . ($currentPage + 1) . '">下一页</a>'; } else { echo '<a class="disabled">下一页</a>'; } ?> </div> <form action="" method="get"> <input type="text" name="page" placeholder="输入页码"> <input type="submit" value="Go"> </form> </body> </html> ``` 请注意,以上代码只是一个示例,您可能需要根据具体的需求进行一些修改和调整。希望对您有帮助!如果有任何问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值