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 相关文章推荐
用CSS+JS实现的进度条效果效果
Jun 05 Javascript
jscript之Open an Excel Spreadsheet
Jun 13 Javascript
jquery的选择器的使用技巧之如何选择input框
Sep 22 Javascript
JS截取url中问号后面参数的值信息
Apr 29 Javascript
JS的location.href跳出框架打开新页面的方法
Sep 04 Javascript
jquery实现像栅栏一样左右滑出式二级菜单效果代码
Aug 24 Javascript
JavaScript之Vue.js【入门基础】
Dec 06 Javascript
Vue-Router实现组件间跳转的三种方法
Nov 07 Javascript
vue里面v-bind和Props 利用props绑定动态数据的方法
Aug 27 Javascript
微信小程序自定义导航栏实例代码
Apr 05 Javascript
小程序实现左滑删除的效果的实例代码
Oct 19 Javascript
JS前端基于canvas给图片添加水印
Nov 11 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中的 == 运算符进行字符串比较
2006/11/26 PHP
整理的一些实用WordPress后台MySQL操作命令
2013/01/07 PHP
深入PHP许愿墙模块功能分析
2013/06/25 PHP
搭建自己的PHP MVC框架详解
2017/08/16 PHP
JS支持带x身份证号码验证函数
2008/08/10 Javascript
ext checkboxgroup 回填数据解决
2009/08/21 Javascript
浅谈jquery回调函数callback的使用
2015/01/30 Javascript
浏览器中url存储的JavaScript实现
2015/07/07 Javascript
jQuery下拉美化搜索表单效果代码分享
2015/08/25 Javascript
jQuery EasyUI实现右键菜单变灰不可用效果
2015/09/24 Javascript
jQuery实现图片预加载效果
2015/11/27 Javascript
JQuery日历插件My97DatePicker日期范围限制
2016/01/20 Javascript
jquery中实现时间戳与日期相互转换
2016/04/12 Javascript
jquery结合html实现中英文页面切换
2016/11/29 Javascript
jQuery tip提示插件(实例分享)
2017/04/28 jQuery
微信小程序动态添加分享数据
2017/06/14 Javascript
JavaScript正则表达式校验与递归函数实际应用实例解析
2017/08/04 Javascript
关于vue编译版本引入的问题的解决
2018/09/17 Javascript
详解element-ui动态限定的日期范围选择器代码片段
2020/07/03 Javascript
vue使用echarts实现水平柱形图实例
2020/09/09 Javascript
[56:21]LGD vs IG 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python列表操作使用示例分享
2014/02/21 Python
Python读取和处理文件后缀为.sqlite的数据文件(实例讲解)
2017/06/27 Python
python 时间信息“2018-02-04 18:23:35“ 解析成字典形式的结果代码详解
2018/04/19 Python
Numpy 中的矩阵求逆实例
2019/08/26 Python
Python importlib模块重载使用方法详解
2020/10/13 Python
节省高达65%的城市景点费用:Go City
2019/07/06 全球购物
Linux内核的同步机制是什么?主要有哪几种内核锁
2016/07/11 面试题
先进集体事迹材料
2014/02/17 职场文书
小学美术兴趣小组活动总结
2014/07/07 职场文书
群众路线教育实践活动剖析材料
2014/09/30 职场文书
党员转正党支部意见
2015/06/02 职场文书
2015中学学校工作总结
2015/07/20 职场文书
毕业典礼致辞
2015/07/29 职场文书
2019个人工作自我评价范文(3篇)
2019/09/19 职场文书
MySQL 覆盖索引的优点
2021/05/19 MySQL