亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > JavaScript > 正文

利用jQuery實現WordPress中@的ID懸浮顯示評論內容

2024-05-06 16:26:07
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了使用JavaScript實現WordPress中ID懸浮顯示評論的功能,就是在樓中樓式的評論中顯示被評論的主體內容,需要的朋友可以參考下
 

比如: A 留言了, B 用 @ 回復了 A, 所以 B 的回復可能是這樣的:

@A
How much money do you have?

就是說, 當鼠標懸停在 @A 上面的時候, 就會將 A 的評論內容顯示在一個懸浮區域中.

利用jQuery實現WordPress中@的ID懸浮顯示評論內容

實現步驟
在這里我們將以iNove主題為例進行講解。
1. 將以下代碼保存為commenttips.js:

jQuery(document).ready( function(){ var id=/^#comment-/; var at=/^@/; jQuery('#thecomments li p a').each(  function() {  if(jQuery(this).attr('href').match(id)&& jQuery(this).text().match(at)) {   jQuery(this).addClass('atreply');  }  } ); jQuery('.atreply').hover(  function() {  jQuery(jQuery(this).attr('href')).clone().hide().insertAfter(jQuery(this).parents('li')).attr('id','').addClass('tip').fadeIn(200);  },   function() {  jQuery('.tip').fadeOut(400, function(){jQuery(this).remove();});  } ); jQuery('.atreply').mousemove(  function(e) {  jQuery('.tip').css({left:(e.clientX+18),top:(e.pageY+18)})  } ); })

2. 將 commenttips.js 文件放置到 inove/js 目錄.

3. style.css 中追加樣式代碼如下:

#thecomments .tip { background:#FFF; border:1px solid #CCC; width:605px; padding:10px !important; padding:10px 10px 0; margin-top:0; position:absolute; z-index:3;}#thecomments .tip .act { display:none;}*+html #thecomments .tip { padding:10px 10px 0 !important;}

4. 在主題中添加代碼調用 JavaScript. 打開 templates/end.php, 在 </body> 前面一行添加以下代碼:
(如果你有其他插件或者自己已經添加了 jQuery 的庫, 那第一行代碼可以不必添加.)

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>
<script type="text/javascript" src="<?php bloginfo('template_url'); ?>/js/commenttips.js"></script>
5. 好了, 刷新一下有 @ 回復的頁面, 等頁面加載完, 將鼠標懸停在 @ 回復上, 你會看到效果的.

為什么不能跨頁顯示?
因為其工作原理是, 當鼠標移動到 @{username} 時在本頁找到對應的評論, 并插入到評論列表中, 以絕對位置的方式顯示出來. 如果評論不在本頁, 找不到對象, 當然就沒有后面的處理了.

如何跨頁獲取評論信息?
如果本頁找不到對應的評論, 可以通過評論的 ID, 用 AJAX 將后臺查詢到的評論信息返回頁面. 當鼠標移動到 @ 評論上時, 向用戶懸浮顯示 'Loading...' 提示框, 如果操作成功將找到的評論插入評論列表的最后面, 并將該評論的內容置換到 'Loading...' 框.
也就是說, 被加載過的評論會一直保留在本頁中, 當鼠標再次移動到 @ 評論上不用重新加載.
下面我們來看一下針對跨頁評論的處理方法:

在當前頁面如何通過 @{username} 找到對應評論?

1. 每個評論都會有一個 ID, 結構如: comment-{commentId}, 這本是為了方便通過錨點找到評論, 同時也成為完成 @ 評論提示的必要條件.
2. 每個 @{username} 其實就是指向評論的錨點, 自然可以取得評論 ID.

所以其實很簡單, 如果評論 ID 是 _commentId, 那么在 JS 可以通過以下代碼找到對應的評論.

document.getElementById(_commentId);

如果能夠找到目標評論, 則創建一個隱藏的臨時評論, 并以目標評論作為其內容, 在 @{username} 附件將它顯示出來; 如果沒找到目標評論, 則通過 ID 到后臺查找對應的評論, 進行跨頁處理.

如何跨頁加載評論?

跨頁的實質是動態加載評論, 將獲取的評論追加到評論列表最后, 讓評論可以在本頁中找到, 不同的只是這些評論通過 CSS 加工并不會顯示出來.

可以參考下圖. 如果評論不在本頁, 會走紅色路徑, 在評論被加入當前頁面之后, 會有一個動作, 將提示框的 Loading 信息替換為評論內容. 當用戶在此將鼠標懸停在這個 @{username} 時, 評論已在當前頁面, 所以不需再次加載, 而是走綠色路徑, 直接將評論提示框調出.

利用jQuery實現WordPress中@的ID懸浮顯示評論內容

注: 圖中藍色部分是后臺處理, 黃色部分是整個加載過程的重點.

在后臺中怎樣獲取評論并對其格式化?

這里可以自己寫個方法對評論信息進行格式化, 也可以通過評論的回調方法 (WordPress 2.7 或以上版本可以定義評論的回調方法) 來獲取格式化的 HTML.

$comment = get_comment($_GET['id']);custom_comments($comment, null,null);

注: custom_comments 是我的回調函數的方法名.

JavaScript 代碼

基于 jQuery 的 JS 代碼, 如果不使用或者使用其他 JS frame, 請根據處理思路自行改造. 建議將代碼放置于評論列表下方.

var id=/^#comment-/;var at=/^@/;jQuery('#thecomments li p a').each(function() { if(jQuery(this).attr('href').match(id)&& jQuery(this).text().match(at)) { jQuery(this).addClass('atreply'); }});jQuery('.atreply').hover(function() { var target = this; var _commentId = jQuery(this).attr('href');  if(jQuery(_commentId).is('.comment')) { jQuery('<li class="comment tip"></li>').hide().html(jQuery(_commentId).html()).appendTo(jQuery('#thecomments')); jQuery('#thecomments .tip').css({  left:jQuery().cumulativeOffset(this)[0] + jQuery(this).width() + 10,  top:jQuery().cumulativeOffset(this)[1] - 22 }).fadeIn(); } else { var id = _commentId.slice(9); jQuery.ajax({  type:     'GET'  ,url:     '?action=load_comment&id=' + id  ,cache:    false  ,dataType:  'html'  ,contentType: 'application/json; charset=utf-8'   ,beforeSend: function(){  jQuery('<li class="comment tip"></li>').hide().html('<p class="ajax-loader msg">Loading...</p>').appendTo(jQuery('#thecomments'));  jQuery('#thecomments .tip').css({   left:jQuery().cumulativeOffset(target)[0] + jQuery(target).width() + 10,   top:jQuery().cumulativeOffset(target)[1] - 22  }).fadeIn();  }   ,success: function(data){  var addedComment = jQuery(data + '</li>');  addedComment.hide().appendTo(jQuery('#thecomments'));  jQuery('#thecomments .tip').html(addedComment.html());  }   ,error: function(){  jQuery('#thecomments .tip').html('<p class="msg">Oops, failed to load data.</p>');  } }); }}, function() { jQuery('#thecomments .tip').fadeOut(400, function(){ jQuery(this).remove(); });});

PHP 代碼

這段代碼來自PhilNa2 主題, 建議將代碼追加到 function.php.

function load_comment(){ if($_GET['action'] =='load_comment' && $_GET['id'] != ''){ $comment = get_comment($_GET['id']); if(!$comment) {  fail(printf('Whoops! Can/'t find the comment with id %1$s', $_GET['id'])); }  custom_comments($comment, null,null); die(); }}add_action('init', 'load_comment');
 


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91视频国产精品| 亚洲欧美三级在线| 91成人性视频| 91网站免费看| 色爱精品视频一区| 中文字幕av一区二区三区谷原希美| 亚洲美女在线看| 一个人www欧美| 亚洲综合精品一区二区| 欧美裸体男粗大视频在线观看| 国产91亚洲精品| 美女精品久久久| 欧美一区二区色| 欧美日韩色婷婷| 国产精品视频久久久久| 成人激情视频小说免费下载| 久久精品国产久精国产一老狼| 欧美成人一区在线| 狠狠久久五月精品中文字幕| 国产精品色视频| 欧美激情一二区| 国产一区二区三区中文| 国产一区二区三区视频在线观看| 国产国产精品人在线视| 欧美日本中文字幕| 亚洲毛茸茸少妇高潮呻吟| 亚洲xxxxx电影| 久久99精品久久久久久青青91| 亚洲视频一区二区| 国产亚洲人成a一在线v站| 久久99久国产精品黄毛片入口| 亚洲女在线观看| 69久久夜色精品国产69乱青草| 欧美国产高跟鞋裸体秀xxxhd| 中文字幕欧美国内| 成人性生交xxxxx网站| 欧美日韩国产成人高清视频| 日韩免费在线免费观看| 91久热免费在线视频| 欧美激情在线狂野欧美精品| 日本91av在线播放| 日本不卡免费高清视频| 亚洲精品乱码久久久久久按摩观| 久久亚洲电影天堂| 庆余年2免费日韩剧观看大牛| 久久av.com| 久久久久国产精品免费网站| 国产精品一区二区久久国产| 国产免费一区二区三区香蕉精| 国产成人精品免费久久久久| 亚洲国产精品大全| 国产最新精品视频| 91色中文字幕| 欧美中文字幕第一页| 亚洲国产精品字幕| 日韩精品亚洲精品| 欧美日韩国产一区二区三区| 中文字幕综合在线| 国产精品成人av在线| 国产欧美欧洲在线观看| 久久电影一区二区| 国产日韩在线免费| 国产精品色悠悠| 国外色69视频在线观看| 亚洲精品短视频| 亚洲第一视频网| 久久精品中文字幕一区| 欧美大人香蕉在线| 色综合久久中文字幕综合网小说| 亚洲一二三在线| 亚洲一区二区在线播放| 久久久精品999| 91成人免费观看网站| 1769国产精品| 国产精品人人做人人爽| 亚洲国内高清视频| 国产精欧美一区二区三区| 国产视频久久久久| 国产一级揄自揄精品视频| 91精品久久久久久久久久久| 超碰日本道色综合久久综合| 久热精品视频在线免费观看| 国产一区二区三区精品久久久| 一区二区三区久久精品| 乱亲女秽乱长久久久| 疯狂做受xxxx高潮欧美日本| 国产精品成人久久久久| 国产日韩精品在线| 97成人精品区在线播放| 精品高清一区二区三区| 欧美色欧美亚洲高清在线视频| 日韩精品亚洲精品| 高清亚洲成在人网站天堂| 日韩成人在线观看| 成人免费视频网址| 色婷婷久久av| 国产精品亚洲第一区| 国产成人jvid在线播放| 国产精品久久久久久久app| 久久久久五月天| 17婷婷久久www| 国产精品一二区| 欧美日韩亚洲精品一区二区三区| 亚洲欧美激情精品一区二区| 久久久这里只有精品视频| 91亚洲国产成人精品性色| 精品国产乱码久久久久酒店| 国产精品免费网站| 亚洲性无码av在线| 亚洲成人精品av| 日韩国产精品一区| 欧美老妇交乱视频| 国产精自产拍久久久久久| 亚洲网址你懂得| 中文字幕av一区中文字幕天堂| 国模吧一区二区| 亚洲免费av网址| 97色在线观看免费视频| 欧美性猛交xxxx免费看| 黑人极品videos精品欧美裸| 精品香蕉在线观看视频一| 国产久一一精品| 亚洲人成网站免费播放| 国产精品久久电影观看| 国产精品久久久久久久久久免费| 国产精品2018| 国产精品欧美亚洲777777| 国产精选久久久久久| 在线看片第一页欧美| 亚洲精品国产suv| 亚洲欧洲在线视频| 成人xxxx视频| 亚洲视频在线免费看| 亚洲福利精品在线| 国产亚洲精品美女久久久久| 欧美在线激情网| 亚洲国产精品热久久| 欧美视频中文字幕在线| 久久国产精品久久久久久久久久| 欧美激情久久久久| 亚洲欧美另类在线观看| 国产亚洲欧洲高清一区| 国产v综合v亚洲欧美久久| 亚洲毛茸茸少妇高潮呻吟| 国产精品久久久久久久久免费| 国产精品91久久久| 日韩免费观看网站| 国产精品视频不卡| 最近2019年中文视频免费在线观看| 7777免费精品视频| 日韩精品视频观看| 久久久久久久久久久免费| 日韩免费在线观看视频| 国产亚洲精品久久久久久牛牛| 久久久久在线观看| 国产精品久久综合av爱欲tv| 日韩在线高清视频| 亚洲二区在线播放视频| 欧美国产日韩视频| 国产精欧美一区二区三区| 91黑丝在线观看| 日韩激情av在线播放| 91亚洲精品久久久久久久久久久久| 成人激情免费在线|