中文字幕日韩一区二区_国产一区二区av_国产毛片av_久久久久国产一区_色婷婷电影_国产一区二区精品

利用JQuery為搜索欄增加tag提示

很簡單的一個功能,就是當用戶在搜索欄輸入搜索字符時候,利用JQuery的功能把一些預設好的關鍵字浮現(xiàn)出來,除了讓用戶意外一下,還有就是讓用戶簡化輸入。比如象下圖的樣子:

tag-suuggestion

實現(xiàn)的方法很簡單,首先是要在你的網(wǎng)站上加載JQuery,然后再加載下面的JS文件,下載之
復制代碼 代碼如下:
(function($){var globalTags=[];window.setGlobalTags=function(tags){globalTags=getTags(tags);};function getTags(tags){var tag,i,goodTags=[];for(i=0;i<tags.length;i++){tag=tags[i];if(typeof tags[i]=='object'){tag=tags[i].tag;}
goodTags.push(tag.toLowerCase());}
return goodTags;}
$.fn.tagSuggest=function(options){var defaults={'matchClass':'tagMatches','tagContainer':'span','tagWrap':'span','sort':true,'tags':null,'url':null,'delay':0,'separator':' '};var i,tag,userTags=[],settings=$.extend({},defaults,options);if(settings.tags){userTags=getTags(settings.tags);}else{userTags=globalTags;}
return this.each(function(){var tagsElm=$(this);var elm=this;var matches,fromTab=false;var suggestionsShow=false;var workingTags=[];var currentTag={"position":0,tag:""};var tagMatches=document.createElement(settings.tagContainer);function showSuggestionsDelayed(el,key){if(settings.delay){if(elm.timer)clearTimeout(elm.timer);elm.timer=setTimeout(function(){showSuggestions(el,key);},settings.delay);}else{showSuggestions(el,key);}}
function showSuggestions(el,key){workingTags=el.value.split(settings.separator);matches=[];var i,html='',chosenTags={},tagSelected=false;currentTag={position:currentTags.length-1,tag:''};for(i=0;i<currentTags.length&&i<workingTags.length;i++){if(!tagSelected&¤tTags[i].toLowerCase()!=workingTags[i].toLowerCase()){currentTag={position:i,tag:workingTags[i].toLowerCase()};tagSelected=true;}
chosenTags[currentTags[i].toLowerCase()]=true;}
if(currentTag.tag){if(settings.url){$.ajax({'url':settings.url,'dataType':'json','data':{'tag':currentTag.tag},'async':false,'success':function(m){matches=m;}});}else{for(i=0;i<userTags.length;i++){if(userTags[i].indexOf(currentTag.tag)===0){matches.push(userTags[i]);}}}
matches=$.grep(matches,function(v,i){return!chosenTags[v.toLowerCase()];});if(settings.sort){matches=matches.sort();}
for(i=0;i<matches.length;i++){html+='<'+settings.tagWrap+' class="_tag_suggestion">'+matches[i]+'</'+settings.tagWrap+'>';}
tagMatches.html(html);suggestionsShow=!!(matches.length);}else{hideSuggestions();}}
function hideSuggestions(){tagMatches.empty();matches=[];suggestionsShow=false;}
function setSelection(){var v=tagsElm.val();if(v==tagsElm.attr('title')&&tagsElm.is('.hint'))v='';currentTags=v.split(settings.separator);hideSuggestions();}
function chooseTag(tag){var i,index;for(i=0;i<currentTags.length;i++){if(currentTags[i].toLowerCase()!=workingTags[i].toLowerCase()){index=i;break;}}
if(index==workingTags.length-1)tag=tag+settings.separator;workingTags[i]=tag;tagsElm.val(workingTags.join(settings.separator));tagsElm.blur().focus();setSelection();}
function handleKeys(ev){fromTab=false;var type=ev.type;var resetSelection=false;switch(ev.keyCode){case 37:case 38:case 39:case 40:{hideSuggestions();return true;}
case 224:case 17:case 16:case 18:{return true;}
case 8:{if(this.value==''){hideSuggestions();setSelection();return true;}else{type='keyup';resetSelection=true;showSuggestionsDelayed(this);}
break;}
case 9:case 13:{if(suggestionsShow){chooseTag(matches[0]);fromTab=true;return false;}else{return true;}}
case 27:{hideSuggestions();setSelection();return true;}
case 32:{setSelection();return true;}}
if(type=='keyup'){switch(ev.charCode){case 9:case 13:{return true;}}
if(resetSelection){setSelection();}
showSuggestionsDelayed(this,ev.charCode);}}
tagsElm.after(tagMatches).keypress(handleKeys).keyup(handleKeys).blur(function(){if(fromTab==true||suggestionsShow){fromTab=false;tagsElm.focus();}});tagMatches=$(tagMatches).click(function(ev){if(ev.target.nodeName==settings.tagWrap.toUpperCase()&&$(ev.target).is('._tag_suggestion')){chooseTag(ev.target.innerHTML);}}).addClass(settings.matchClass);setSelection();});};})(jQuery);

接著就是編輯你自己的關鍵字。這里的做法是你自己自行編輯,還有很多方法是直接查詢WordPress的數(shù)據(jù)庫的。但那樣做就顯得很專業(yè)的樣子。對于我自己來說,本來站內的搜索功能就不是很受用,為了那沒多被使用過幾次的搜索而復雜這個提示功能顯然不值,所以還是自己來編輯一些重要的關鍵字好了。下面的代碼也要整合到網(wǎng)站的JS文件中:
復制代碼 代碼如下:
<script type="text/Javascript">
$(document).ready(function() {
$('#tags').tagSuggest({
tags: ["WordPress","WordPress 主題","WordPress 插件","生活","巴黎","設計","法國","照片","朋友","技巧","下載","JQuery","JQuery 教程","JQuery 例子","twitter","Google","seo","firefox","firefox 擴展","css","ajax","theme","theme 教程","theme 技巧","Js-O3","Js-Paper","blackberry","blackberry 8900"]
});
});
</script>

能看出上面的關鍵字編輯了吧。
然后最后一步就是需要指定相應的搜索欄,如上面代碼中的"#tags"就是決定這個東西。修改搜索欄的ID,讓其適應則可。也就是說為搜索欄的input內添加一個id="tags"則可。或者你也可以修改上面的代碼內的ID,讓其適應你原有的搜索欄內input的ID。
當然還有對關鍵字的樣式設定,這個就隨大家愛好了,我這里不列出。
tag.js 打包下載

JavaScript技術利用JQuery為搜索欄增加tag提示,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 久久久久久亚洲国产精品 | 日本黄色大片免费看 | 精品一区二区久久久久久久网站 | 国产一区二区在线播放 | 国产精品久久国产精品99 | 老司机狠狠爱 | 91免费小视频 | 国产欧美日韩精品一区二区三区 | 极品在线 | av永久免费| 久久久激情 | 国产精品欧美一区二区三区 | 久久精品成人热国产成 | 欧美一区二区大片 | 日本不卡一二三 | 日韩精品一区二区三区中文在线 | 亚洲乱码一区二区三区在线观看 | 一区二区三区欧美 | 日韩成人精品一区二区三区 | 天天操天天射天天舔 | 浮生影院免费观看中文版 | 午夜精品久久久久久久久久久久 | 久久亚洲综合 | 一级毛片免费完整视频 | 一级毛片中国 | 日韩精品在线播放 | 成人免费视频网站在线观看 | 国产午夜精品一区二区三区四区 | 午夜小视频在线播放 | 欧美日本在线观看 | 国产一区不卡在线观看 | 日韩精品亚洲专区在线观看 | 91在线免费观看网站 | 久久久久亚洲 | 亚洲中午字幕 | 精品99久久 | 天天插天天射天天干 | 成人在线不卡 | 中文字幕第一页在线 | 国产高清在线精品 | 久久久久久久久久久成人 |