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 相关文章推荐
JavaScript Tips 使用DocumentFragment加快DOM渲染速度
Jun 28 Javascript
JQuery 选择和过滤方法代码总结
Nov 19 Javascript
最好用的省市二级联动 原生js实现你值得拥有
Sep 22 Javascript
动态载入js提高网页打开速度的方法
Jul 04 Javascript
js事件监听机制(事件捕获)总结
Aug 08 Javascript
js预加载图片方法汇总
Jun 15 Javascript
详解JavaScript的策略模式编程
Jun 24 Javascript
基于javascript实现单选及多选的向右和向左移动实例
Jul 25 Javascript
javascript中SetInterval与setTimeout的定时器用法
Aug 24 Javascript
关于验证码在IE中不刷新的快速解决方法
Sep 23 Javascript
Vue实现路由跳转和嵌套
Jun 20 Javascript
15分钟深入了解JS继承分类、原理与用法
Jan 19 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/10/09 PHP
用来给图片加水印的PHP类
2008/04/09 PHP
php的chr和ord函数实现字符加减乘除运算实现代码
2011/12/05 PHP
php页面,mysql数据库转utf-8乱码,utf-8编码问题总结
2015/08/27 PHP
bcastr2.0 通用的图片浏览器
2006/11/22 Javascript
获取Javscript执行函数名称的方法
2006/12/22 Javascript
基于Jquery的文字自动截取(提供源代码)
2011/08/09 Javascript
JS 各种网页尺寸判断实例方法
2013/04/18 Javascript
js实现拉伸拖动iframe的具体代码
2013/08/03 Javascript
用html+css+js实现的一个简单的图片切换特效
2014/05/28 Javascript
javascript中通过arguments参数伪装方法重载
2014/10/08 Javascript
本人自用的global.js库源码分享
2015/02/28 Javascript
jquery实现实时改变网页字体大小、字体背景色和颜色的方法
2015/08/05 Javascript
jquery实现的蓝色二级导航条效果代码
2015/08/24 Javascript
jQuery根据name属性进行查找的用法分析
2016/06/23 Javascript
[原创]JS基于FileSaver.js插件实现文件保存功能示例
2016/12/08 Javascript
JS敏感词过滤代码
2016/12/23 Javascript
微信小程序商品详情页的底部弹出框效果
2020/11/16 Javascript
js+html5实现手机九宫格密码解锁功能
2018/07/30 Javascript
js 获取本周、上周、本月、上月、本季度、上季度的开始结束日期
2020/02/01 Javascript
webstorm建立vue-cli脚手架的傻瓜式教程
2020/09/22 Javascript
Python中列表和元组的相关语句和方法讲解
2015/08/20 Python
python实现文本去重且不打乱原本顺序
2016/01/26 Python
实例讲解Python中SocketServer模块处理网络请求的用法
2016/06/28 Python
python实现逆序输出一个数字的示例讲解
2018/06/25 Python
Python之循环结构
2019/01/15 Python
Python实现定制自动化业务流量报表周报功能【XlsxWriter模块】
2019/03/11 Python
django和vue实现数据交互的方法
2019/08/21 Python
Python selenium环境搭建实现过程解析
2020/09/08 Python
行政助理的职责
2013/11/14 职场文书
暑期实习鉴定
2013/12/16 职场文书
初中班主任经验交流材料
2014/05/16 职场文书
领导批评与自我批评范文
2014/10/16 职场文书
教师辞职书范文
2015/02/26 职场文书
研讨会致辞
2015/07/31 职场文书
pycharm安装深度学习pytorch的d2l包失败问题解决
2022/03/25 Python