使用jQuery實(shí)現(xiàn)WordPress中的Ctrl+Enter和@評(píng)論回復(fù)
來源:易賢網(wǎng) 閱讀:737 次 日期:2016-06-25 14:14:57
溫馨提示:易賢網(wǎng)小編為您整理了“使用jQuery實(shí)現(xiàn)WordPress中的Ctrl+Enter和@評(píng)論回復(fù)”,方便廣大網(wǎng)友查閱!

相信大家對(duì)QQ中的Ctrl+Enter快捷回復(fù)和微博上的@指名回復(fù)功能都不陌生,在WordPress的評(píng)論欄方面我們同樣可以添加這樣的功能,一起來看使用jQuery實(shí)現(xiàn)WordPress中的Ctrl+Enter和@評(píng)論回復(fù)的方法:

添加 Ctrl+Enter 快捷回復(fù)

這里送上兩種方法,首先是 jQuery 方法,前段時(shí)間一直在研究 jQuery ,因此對(duì) jQuery 方法比較熟悉,如果你的主題本來已經(jīng)加載 jQuery 庫,建議你使用下面的方法。

把這段代碼加入 js 文件中,如果你已經(jīng)加載 jQuery ,現(xiàn)在就可以使用 Ctrl+Enter 進(jìn)行快捷回復(fù)。

jQuery(document).ready(function($){          

//Ctrl+Enter回復(fù)

  jQuery(document).keypress(function(e){

    if(e.ctrlKey && e.which == 13 || e.which == 10) {

      jQuery("#commentform").submit();

    }

  })

});

解釋一下代碼,在 chrome 等現(xiàn)代瀏覽器中, js 是使用 e.which ==13 判斷 Enter ,在 ie6 中, js 是使用 e.which ==10 判斷 Enter 。

另一種方法:

在 comments.php 中找到一段類似以下代碼(即評(píng)論框的代碼),

<textarea name="comment" id="comment" rows="10" cols="50" tabindex="4"></textarea>

替換為以下的一段代碼:

<textarea name="comment" id="comment" rows="10"?cols="50"?tabindex="4" onkeydown="if(event.ctrlKey&&event.keyCode==13 || Key&&event.keyCode==10){document.getElementById('submit').click();return false};"></textarea>

實(shí)現(xiàn) Ctrl+Enter 快捷回復(fù)的原理跟 jQuery 版的差不多,這里就不作詳細(xì)解釋了。

實(shí)現(xiàn)  @回復(fù)  

在回復(fù)時(shí)帶有“ @ ”的功能大家應(yīng)該不陌生了,在微博, BBS 中都可以見到“ @ ”的身影,連騰訊的 Qzone 也加入了“ @回復(fù) ”的功能。的確,“ @回復(fù) ”使到回復(fù)的對(duì)象更加清晰了,對(duì)于多重回復(fù)效果更加明顯。

但是, WordPress 的評(píng)論模板中并沒有自帶這個(gè)功能,因此我們需要手動(dòng)添加進(jìn)去,其實(shí)這個(gè)功能在 WordPress 中已經(jīng)比較流行了,不少主題中都帶有這個(gè)功能,實(shí)現(xiàn)的原理也有多種,而我在本文中介紹的是 jQuery 實(shí)現(xiàn)的方法,由于網(wǎng)上流傳的文章大多都是直接給出 jQuery 代碼,沒有詳細(xì)的解釋,而不同的網(wǎng)站 DOM 不一定相同,因此不熟悉 jQuery 的童鞋在使用 jQuery 實(shí)現(xiàn)“ @回復(fù) ”時(shí)可能會(huì)出現(xiàn)各種問題。

1.加載 jQuery 庫,可以直接用 google 的。

2. jQuery 代碼,可以直接放到 js 文件中。

jQuery(document).ready(function($){

$('.comment-reply-link').click(function() {

   //獲取回復(fù)者的id

   var atid = '"#' + $(this).parent().parent().attr("id") + '"';

   //獲取回復(fù)者的昵稱

  var atname = $(this).parent().find('.comment_author').text();

$("#comment").attr("value","<a href=" + atid + ">@" + atname + " </a>").focus();

});

$('#cancel-comment-reply a').click(function() {

$("#comment").attr("value",'');

});

});

3.解釋 jQuery 代碼

在實(shí)現(xiàn)“ @回復(fù) ”中,關(guān)鍵是獲取所要回復(fù)的對(duì)象的 id 和昵稱,因此定義了兩個(gè)量 atid , atname ,分別用于保存所要回復(fù)的對(duì)象的 id 和昵稱。當(dāng)用戶用鼠標(biāo)單擊 .comment-reply-link 后jQuery會(huì)獲取其上兩級(jí)父元素的 id 屬性,保存在量 atid 中,然后在其父元素的子輩元素中尋找 .comment_author ,并獲取其內(nèi)容保存在 atname 中。或許上面的描述較難理解,下面再用圖片說明一下!

要獲取用戶 id ,首先需要了解評(píng)論部分的 DOM 結(jié)構(gòu),以 Melody 為例,用 Firebug 查看其一條評(píng)論的部分 HTML

名單

看了圖相信童鞋們應(yīng)該大概明白了, .comment-reply-link 的上兩級(jí)父元素包含回復(fù)者的 id ,因此可以在這里獲取回復(fù)者的id,而在 .comment-reply-link 的同輩元素中包含了用戶的昵稱,看到這里相信各位童鞋再看看上面的 jQuery 代碼應(yīng)該不難理解了!

我們首先應(yīng)該知道自己的評(píng)論模板在哪里有輸出回復(fù)者的 id ,在哪里有輸出回復(fù)者的昵稱,然后用 jQuery 的選擇器即可以獲取相關(guān)的數(shù)據(jù)。

更多信息請(qǐng)查看網(wǎng)絡(luò)編程
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國考·省考課程試聽報(bào)名

  • 報(bào)班類型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 新媒體/短視頻平臺(tái) | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)