使用jQuery实现WordPress中的Ctrl+Enter和@评论回复


Posted in Javascript onMay 21, 2016

添加 Ctrl+Enter 快捷回复
这里送上两种方法,首先是 jQuery 方法,前段时间一直在研究 jQuery ,因此对 jQuery 方法比较熟悉,如果你的主题本来已经加载 jQuery 库,建议你使用下面的方法。

把这段代码加入 js 文件中,如果你已经加载 jQuery ,现在就可以使用 Ctrl+Enter 进行快捷回复。

jQuery(document).ready(function($){          
//Ctrl+Enter回复
  jQuery(document).keypress(function(e){
    if(e.ctrlKey && e.which == 13 || e.which == 10) {
      jQuery("#commentform").submit();
    }
  })
});

 
解释一下代码,在 chrome 等现代浏览器中, js 是使用 e.which ==13 判断 Enter ,在 ie6 中, js 是使用 e.which ==10 判断 Enter 。

另一种方法:
在 comments.php 中找到一段类似以下代码(即评论框的代码),

<textarea name="comment" id="comment" rows="10" cols="50" tabindex="4"></textarea>

 
替换为以下的一段代码:

<textarea name="comment" id="comment" rows="10"?cols="50"?tabindex="4" onkeydown="if(event.ctrlKey&&event.keyCode==13 || Key&&event.keyCode==10){document.getElementById('submit').click();return false};"></textarea>

 

实现 Ctrl+Enter 快捷回复的原理跟 jQuery 版的差不多,这里就不作详细解释了。

实现  @回复 
在回复时带有“ @ ”的功能大家应该不陌生了,在微博, BBS 中都可以见到“ @ ”的身影,连腾讯的 Qzone 也加入了“ @回复 ”的功能。的确,“ @回复 ”使到回复的对象更加清晰了,对于多重回复效果更加明显。

但是, WordPress 的评论模板中并没有自带这个功能,因此我们需要手动添加进去,其实这个功能在 WordPress 中已经比较流行了,不少主题中都带有这个功能,实现的原理也有多种,而我在本文中介绍的是 jQuery 实现的方法,由于网上流传的文章大多都是直接给出 jQuery 代码,没有详细的解释,而不同的网站 DOM 不一定相同,因此不熟悉 jQuery 的童鞋在使用 jQuery 实现“ @回复 ”时可能会出现各种问题。

1.加载 jQuery 库,可以直接用 google 的。

2. jQuery 代码,可以直接放到 js 文件中。

jQuery(document).ready(function($){
$('.comment-reply-link').click(function() {
   //获取回复者的id
   var atid = '"#' + $(this).parent().parent().attr("id") + '"';
   //获取回复者的昵称
  var atname = $(this).parent().find('.comment_author').text();
$("#comment").attr("value","<a href=" + atid + ">@" + atname + " </a>").focus();
});
$('#cancel-comment-reply a').click(function() {
$("#comment").attr("value",'');
});
});

3.解释 jQuery 代码

在实现“ @回复 ”中,关键是获取所要回复的对象的 id 和昵称,因此定义了两个量 atid , atname ,分别用于保存所要回复的对象的 id 和昵称。当用户用鼠标单击 .comment-reply-link 后jQuery会获取其上两级父元素的 id 属性,保存在量 atid 中,然后在其父元素的子辈元素中寻找 .comment_author ,并获取其内容保存在 atname 中。或许上面的描述较难理解,下面再用图片说明一下!

要获取用户 id ,首先需要了解评论部分的 DOM 结构,以 Melody 为例,用 Firebug 查看其一条评论的部分 HTML ,

使用jQuery实现WordPress中的Ctrl+Enter和@评论回复

看了图相信童鞋们应该大概明白了, .comment-reply-link 的上两级父元素包含回复者的 id ,因此可以在这里获取回复者的id,而在 .comment-reply-link 的同辈元素中包含了用户的昵称,看到这里相信各位童鞋再看看上面的 jQuery 代码应该不难理解了!

我们首先应该知道自己的评论模板在哪里有输出回复者的 id ,在哪里有输出回复者的昵称,然后用 jQuery 的选择器即可以获取相关的数据。

Javascript 相关文章推荐
JavaScript判断变量是否为undefined的两种写法区别
Dec 04 Javascript
js实现的捐赠管理完整实例
Jan 20 Javascript
js使用Array.prototype.sort()对数组对象排序的方法
Jan 28 Javascript
一分钟理解js闭包
May 04 Javascript
JavaScript读二进制文件并用ajax传输二进制流的方法
Jul 18 Javascript
Javascript typeof与instanceof的区别
Oct 18 Javascript
Bootstrap中定制LESS-颜色及导航条(推荐)
Nov 21 Javascript
jQuery中.attr()和.data()的区别分析
Sep 03 jQuery
Angular实现点击按钮后在上方显示输入内容的方法
Dec 27 Javascript
JS实现自定义弹窗功能
Aug 08 Javascript
浅谈Vue.js 关于页面加载完成后执行一个方法的问题
Apr 01 Javascript
js+HTML5 canvas 实现简单的加载条(进度条)功能示例
Jul 16 Javascript
JavaScript的ExtJS框架中数面板TreePanel的使用实例解析
May 21 #Javascript
IScroll5 中文API参数说明和调用方法
May 21 #Javascript
JavaScript的ExtJS框架中表格的编写教程
May 21 #Javascript
基于HTML5上使用iScroll实现下拉刷新,上拉加载更多
May 21 #Javascript
jQuery插件pagination实现无刷新分页
May 21 #Javascript
JavaScript中对JSON对象的基本操作示例
May 21 #Javascript
iscroll碰到Select无法选择下拉刷新的解决办法
May 21 #Javascript
You might like
几款免费开源的不用数据库的php的cms
2010/12/19 PHP
PHP校验ISBN码的函数代码
2011/01/17 PHP
php生成图片缩略图的方法
2015/04/07 PHP
PHP实现从PostgreSQL数据库检索数据分页显示及根据条件查找数据示例
2018/06/09 PHP
PHP函数积累总结
2019/03/19 PHP
CSS中简写属性要注意TRouBLe的顺序问题(避免踩坑)
2021/03/09 HTML / CSS
从sohu弄下来的flash中展示图片的代码
2007/04/27 Javascript
location.search在客户端获取Url参数的方法
2010/06/08 Javascript
基于jQuery的的一个隔行变色,鼠标移动变色的小插件
2010/07/06 Javascript
jquery 关于event.target使用的几点说明介绍
2013/04/26 Javascript
JS操作数据库的实例代码
2013/10/17 Javascript
通过JS动态创建一个html DOM元素并显示
2014/10/15 Javascript
jQuery中hasClass()方法用法实例
2015/01/06 Javascript
JS交换变量的方法
2015/01/21 Javascript
Dropzone.js实现文件拖拽上传功能(附源码下载)
2016/11/22 Javascript
浅析js的模块化编写 require.js
2016/12/07 Javascript
vue-router跳转页面的方法
2017/02/09 Javascript
countup.js实现数字动态叠加效果
2019/10/17 Javascript
JS实现密码框效果
2020/09/10 Javascript
js+canvas实现转盘效果(两个版本)
2020/09/13 Javascript
python模块之StringIO使用示例
2015/04/08 Python
Python爬虫实现验证码登录代码实例
2019/05/10 Python
Python如何存储数据到json文件
2020/03/09 Python
使用python计算三角形的斜边例子
2020/04/15 Python
Python中zip函数如何使用
2020/06/04 Python
Dr. Martens马汀博士官网:马丁靴始祖品牌
2016/10/15 全球购物
Abbacino官网:包、钱包和女士配饰
2019/04/15 全球购物
机电专业大学生职业规划书范文
2014/02/25 职场文书
企业年会主持词
2014/03/27 职场文书
小学生学习雷锋倡议书
2014/05/15 职场文书
四风问题原因分析及整改措施
2014/10/24 职场文书
2015年打非治违工作总结
2015/04/02 职场文书
2015年汽车销售工作总结
2015/04/07 职场文书
MySQL表的增删改查基础教程
2021/04/07 MySQL
用python修改excel表某一列内容的操作方法
2021/06/11 Python
Redis中一个String类型引发的惨案
2021/07/25 Redis