使用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 相关文章推荐
Extjs学习笔记之七 布局
Jan 08 Javascript
javascript与CSS复习(二)
Jun 29 Javascript
JavaScript函数获取事件源的小例子
May 14 Javascript
jQuery中clearQueue()方法用法实例
Dec 29 Javascript
js定义类的几种方法(推荐)
Jun 08 Javascript
vue2.0使用swiper组件实现轮播效果
Nov 27 Javascript
jQuery+Cookie实现切换皮肤功能【附源码下载】
Mar 25 jQuery
Vue 将后台传过来的带html字段的字符串转换为 HTML
Mar 29 Javascript
vue实现与安卓、IOS交互的方法
Nov 02 Javascript
js防抖和节流的深入讲解
Dec 06 Javascript
JS实现简单tab选项卡切换
Oct 25 Javascript
手写实现JS中的new
Nov 07 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
截获网站title标签之家内容的例子
2006/10/09 PHP
IP攻击升级,程序改进以对付新的攻击
2010/11/23 PHP
PHP中数组合并的两种方法及区别介绍
2012/09/14 PHP
php防止SQL注入详解及防范
2013/11/12 PHP
PHP抓取网页、解析HTML常用的方法总结
2015/07/01 PHP
php实现在线考试系统【附源码】
2018/09/18 PHP
php获取小程序码的实现代码(B类接口)
2020/06/13 PHP
限制复选框的最大可选数
2006/07/01 Javascript
js中关于String对象的replace使用详解
2011/05/24 Javascript
JQuery插件fancybox无法在弹出层使用左右键的解决办法
2013/12/25 Javascript
jQuery中prependTo()方法用法实例
2015/01/08 Javascript
jquery中ready()函数执行的时机和window的load事件比较
2015/06/22 Javascript
javascript实现网页中涉及的简易运动(改变宽高、透明度、位置)
2015/11/29 Javascript
js组件SlotMachine实现图片切换效果制作抽奖系统
2016/04/17 Javascript
深入浅析Bootstrap列表组组件
2016/05/03 Javascript
form表单数据封装成json格式并提交给服务器的实现方法
2017/12/14 Javascript
基于nodejs实现微信支付功能
2017/12/20 NodeJs
JavaScript 性能提升之路(推荐)
2019/04/10 Javascript
python的socket编程入门
2018/01/29 Python
Python实现朴素贝叶斯分类器的方法详解
2018/07/04 Python
python实现机器人卡牌
2019/10/06 Python
python实现按关键字筛选日志文件
2019/12/24 Python
Django admin组件的使用
2020/10/24 Python
python statsmodel的使用
2020/12/21 Python
Kathmandu美国网站:新西兰户外运动品牌
2019/03/23 全球购物
世界顶级户外运动品牌折扣网站:LeftLane Sports
2019/06/12 全球购物
优秀民警事迹材料
2014/01/29 职场文书
大二学习计划书范文
2014/04/27 职场文书
乡镇党建工作汇报材料
2014/10/27 职场文书
2014年党小组工作总结
2014/12/20 职场文书
志愿者事迹材料
2014/12/26 职场文书
爱的承诺书
2015/01/20 职场文书
2015年母亲节寄语
2015/03/23 职场文书
证券区域经理岗位职责
2015/04/10 职场文书
2016年幼儿园教师政治学习心得体会
2016/01/23 职场文书
从np.random.normal()到正态分布的拟合操作
2021/06/02 Python