jQuery实现页面评论栏中访客信息自动填写功能的方法


Posted in Javascript onMay 23, 2016

首先简单说一说仿登陆的具体操作,用户第一次登陆时会出现用于填写评论者资料的框,当用户评论完成后,将会以 cookie 的方式记录评论者资料,一年后 cookie 自动清除,当用户再次评论时填写评论者资料的 div 将会隐藏,当用户点击“ Change ”时可以再次编辑评论者资料,同时 Change 字样会改为“ Finish ” ,点击 Finish 时填写评论者资料的 div 将会再次隐藏,同时 Change 字样将会改为 Change Again 。

以下是分步叙述如何使用 jQuery 实现以上效果,如果只想实现效果的童鞋可以直接看代码。

1.加载 jQuery 库,这是必须的。

2.把 comments.php 的评论者资料框代码和评论框代码按如下修改:

<?php if(isset($_COOKIE['comment_author_email_'.COOKIEHASH]) && isset($_COOKIE['comment_author_'.COOKIEHASH])) : ?>
  <div class="commentwelcome">
  <?php printf(__('欢迎发表评论! <strong>%1s</strong> '), $comment_author); ?><a id="edit_profile" title="重新填写资料" href="javascript:void(0);"><span>Change</span></a>
  </div>
<?php endif; ?>
 
<div class="<?php echo $comment_author_email ? 'hidden' : 'profile'; ?>">      
   <!-- 评论者资料框代码 -->
</div>    
<!-- 评论框代码 -->

 
在上面的代码中,会以 cookie 的方式记录评论者资料,并把评论者资料框的 div 赋予“ hidden ”的 class ,因此对于曾评论的访客,需要先隐藏起评论者资料框的 div ,可以使用 jQuery 的hide()事件隐藏该 div ,如果 jQuery 加载速度较慢,会出现打开页面时先出现 div ,片刻后再突然隐藏 div 的情况,这样显然不利用户体验,因此也可以直接写一条 css ——.hidden {display: none; }。

$('.hidden').hide();

3.然后再使用toggle()事件,slideUp()和slideDown()动画实现编辑评论者资料的功能。

$('#edit_profile').toggle(function(){
    $('.hidden').slideDown();
    },function(){
    $('.hidden').slideUp();
    });

 

4.为了提高用户体验,还需要使用text()方法在点击“Change”时把 Change 的字样改为“ Finish ”,当点击 Finish 时再把 Finish 字样改为“ Change Again ”。把以上代码整合,完整的 jQuery 代码如下:

jQuery(document).ready(function($){
$('.hidden').hide();
$('#edit_profile').toggle(function(){
    $('.hidden').slideDown();
    $('#edit_profile span').text("Finish");
    },function(){
    $('.hidden').slideUp();
    $('#edit_profile span').text("Change Again");
    });
 
});

PS:访客评论显示欢迎信息
我们通过判断$comment_author变量值是否为空,来确定访客是否在近期有评论(有 Cookie)。

if (!is_user_logged_in() && !empty($comment_author)) {
...
}

如果有,则在评论框上方显示欢迎信息:

if (!is_user_logged_in() && !empty($comment_author)) {
  $welcome_login = '<p id="welcome-login"><span>欢迎回来, <strong>' . $comment_author . '</strong>.</span>';
  $welcome_login .= ' <span id="toggle-author"><u>更改</u> <i class="icon-signout"></i></span></p>';

  $comments_args['comment_field'] = '</div>' . $comments_args['comment_field'];
  $comments_args['comment_notes_before'] = $welcome_login . '<div id="author-info" class="hide">';
}

以上代码,需要添加到主题的 comment.php 文件 comment_form($comments_args) 方法调用之前。

接下来,我们通过 Javascript 来实现访客信息更改:

/* Toggle comment user */
$('#comments').on('click', '#toggle-author', function () { 
  $('#author-info').slideToggle(function () { 
    if ($(this).is(':hidden')) {
      /* Update author name in the welcome messages */
      $('#welcome-login strong').html($('#author').val());

      /* Update the toggle action name */
      $('#toggle-author u').html('更改');
    } else {
      /* Update the toggle action name */
      $('#toggle-author u').html('隐藏');
    }  
  }); 
});

这样,如果用户需要更新信息时,可以点击欢迎信息右侧的更改按钮;修改完成之后,用户信息会在评论后更新。

Javascript 相关文章推荐
10个基于Jquery的幻灯片插件教程
Oct 29 Javascript
js中数组Array的一些常用方法总结
Aug 12 Javascript
jquery实现显示已选用户
Jul 21 Javascript
JavaScript基于ajax编辑信息用法实例
Jul 15 Javascript
jQuery实现公告新闻自动滚屏效果实例代码
Jul 14 Javascript
值得学习的bootstrap fileinput文件上传工具
Nov 08 Javascript
JS实现简单的点赞与踩功能示例
Dec 05 Javascript
vue实现多条件和模糊搜索功能
May 28 Javascript
微信小程序JS加载esmap地图的实例详解
Sep 04 Javascript
微信小程序分包加载代码实现方法详解
Sep 23 Javascript
Vue.js组件props数据验证实现详解
Oct 19 Javascript
JS自定义对象创建与简单使用方法示例
Jan 15 Javascript
jQuery插件formValidator实现表单验证
May 23 #Javascript
超链接怎么正确调用javascript函数
May 23 #Javascript
以WordPress为例讲解jQuery美化页面Title的方法
May 23 #Javascript
jQuery中选择器的基础使用教程
May 23 #Javascript
基于BootStrap的图片轮播效果展示实例代码
May 23 #Javascript
AngularJS上拉加载问题解决方法
May 23 #Javascript
在IE8上JS实现combobox支持拼音检索功能
May 23 #Javascript
You might like
社区(php&amp;&amp;mysql)二
2006/10/09 PHP
用PHP生成html分页列表的代码
2007/03/18 PHP
PHP获取星期几的常用方法小结
2018/12/18 PHP
基于jquery用于查询操作的实现代码
2010/05/10 Javascript
使用 JScript 创建 .exe 或 .dll 文件的方法
2011/07/13 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(五)可移动地图的实现
2013/01/23 Javascript
探讨在JQuery和Js中,如何让ajax执行完后再继续往下执行
2013/07/09 Javascript
JavaScript判断变量是否为空的自定义函数分享
2015/01/31 Javascript
javascript模拟评分控件实现方法
2015/05/13 Javascript
在jQuery中处理XML数据的大致方法
2015/08/14 Javascript
jQuery超赞的评分插件(8款)
2015/08/20 Javascript
JS实现iframe自适应高度的方法(兼容IE与FireFox)
2016/06/24 Javascript
Easyui的组合框的取值与赋值
2016/10/28 Javascript
Html5 js实现手风琴效果
2020/04/17 Javascript
微信小程序 自定义复选框实现代码实例
2019/09/04 Javascript
vue 使用插槽分发内容操作示例【单个插槽、具名插槽、作用域插槽】
2020/03/06 Javascript
js实现简单的随机点名器
2020/09/17 Javascript
详解nginx配置vue h5 history去除#号
2020/11/09 Javascript
Python爬虫实现(伪)球迷速成
2018/06/10 Python
浅谈Python爬虫基本套路
2019/03/25 Python
Python音频操作工具PyAudio上手教程详解
2019/06/26 Python
解决keras模型保存h5文件提示无此目录问题
2020/07/01 Python
Pyinstaller打包Scrapy项目的实现步骤
2020/09/22 Python
Python 排序最长英文单词链(列表中前一个单词末字母是下一个单词的首字母)
2020/12/14 Python
CSS3实现圆角、阴影、透明效果并兼容各大浏览器
2014/08/08 HTML / CSS
KEETSA环保床垫:更好的睡眠,更好的生活!
2016/11/24 全球购物
总经理秘书的岗位职责
2013/12/27 职场文书
初中生自我鉴定
2014/02/04 职场文书
幼儿园运动会加油词
2014/02/14 职场文书
人事文员岗位职责
2014/02/16 职场文书
先进基层党组织事迹材料
2014/12/25 职场文书
党员违纪检讨书
2015/05/05 职场文书
2016年党建工作简报
2015/11/26 职场文书
2016大学生诚信考试承诺书
2016/03/25 职场文书
MySQL中的布尔值,怎么存储false或true
2021/06/04 MySQL
OpenStack虚拟机快照和增量备份实现方法
2022/04/04 Servers