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实现根据身份证号读取相关信息
Dec 17 Javascript
关注jquery技巧提高jquery技能(前端开发必学)
Nov 02 Javascript
详解JavaScript函数对象
Nov 15 Javascript
深入分析jQuery的ready函数是如何工作的(工作原理)
Dec 17 Javascript
jQuery树形控件zTree使用小结
Aug 02 Javascript
jQuery Ajax Post 回调函数不执行问题的解决方法
Aug 15 Javascript
在线引用最新jquery文件的实现方法
Aug 26 Javascript
Angularjs实现搜索关键字高亮显示效果
Jan 17 Javascript
bootstrap vue.js实现tab效果
Feb 07 Javascript
简单谈谈axios中的get,post方法
Jun 25 Javascript
JavaScript 实现HTML DOM增删改查操作的常见方法详解
Jan 04 Javascript
node.js中fs文件系统模块的使用方法实例详解
Feb 13 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 Zip压缩 在线对文件进行压缩的函数
2010/05/26 PHP
PHP验证码类代码( 最新修改,完全定制化! )
2010/12/02 PHP
PHP中设置时区方法小结
2012/06/03 PHP
php查询ip所在地的方法
2014/12/05 PHP
PHP计算指定日期所在周的开始和结束日期的方法
2015/03/24 PHP
php实现paypal 授权登录
2015/05/28 PHP
PHP实现清除wordpress里恶意代码
2015/10/21 PHP
php版微信公众账号第三方管理工具开发简明教程
2016/09/23 PHP
等待指定时间后自动跳转或关闭当前页面的js代码
2013/07/09 Javascript
使用非html5实现js板连连看游戏示例代码
2013/09/22 Javascript
jQuery鼠标事件汇总
2015/08/30 Javascript
jQuery实现的经典滑动门效果
2015/09/22 Javascript
js命名空间写法示例
2015/12/18 Javascript
js实现简单的碰壁反弹效果
2016/08/30 Javascript
jQuery实现简单弹窗遮罩效果
2017/02/27 Javascript
react native与webview通信的示例代码
2017/09/25 Javascript
基于vue1和vue2获取dom元素的方法
2018/03/17 Javascript
layui的table单击行勾选checkbox功能方法
2018/08/14 Javascript
在Angular中使用JWT认证方法示例
2018/09/10 Javascript
通过jQuery学习js类型判断的技巧
2019/05/27 jQuery
Tornado服务器中绑定域名、虚拟主机的方法
2014/08/22 Python
python将字符串转换成数组的方法
2015/04/29 Python
python在linux系统下获取系统内存使用情况的方法
2015/05/11 Python
Python根据区号生成手机号码的方法
2015/07/08 Python
Python FTP两个文件夹间的同步实例代码
2018/05/25 Python
python中报错&quot;json.decoder.JSONDecodeError: Expecting value:&quot;的解决
2019/04/29 Python
python简单区块链模拟详解
2019/07/03 Python
python 字典访问的三种方法小结
2019/12/05 Python
python字符串替换re.sub()实例解析
2020/02/09 Python
Python Numpy,mask图像的生成详解
2020/02/19 Python
39美元购买一副眼镜或太阳镜:39DollarGlasses.com
2018/06/17 全球购物
Yummie官方网站:塑身衣和衣柜必需品
2019/10/29 全球购物
企划主管岗位职责
2013/12/12 职场文书
最热门的自我评价
2013/12/30 职场文书
2016年“抗战胜利纪念日”71周年校园广播稿
2015/12/18 职场文书
游戏《铁拳》动画化!2022年年内播出
2022/03/21 日漫