一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

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

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

tag-suuggestion

實現的方法很簡單,首先是要在你的網站上加載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的數據庫的。但那樣做就顯得很專業的樣子。對于我自己來說,本來站內的搜索功能就不是很受用,為了那沒多被使用過幾次的搜索而復雜這個提示功能顯然不值,所以還是自己來編輯一些重要的關鍵字好了。下面的代碼也要整合到網站的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提示,轉載需保留來源!

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

主站蜘蛛池模板: 久久亚洲一级α片 | 国产麻豆精品原创 | 国产精品久久久久久吹潮 | 福利片午夜 | 国产专区视频在线观看 | 色噜噜狠狠一区二区三区果冻 | 最色网在线观看 | 男女男精品视频网站 | 欧美日韩中文一区二区三区 | 欧美黄色网页 | 涩涩久久 | 亚洲成人91| 色成年激情久久综合 | 午夜看片未满十八勿进 | 久久伊人草 | 天堂资源在线官网资源 | 久热中文字幕在线精品免费 | 美女被男人扒开下面无遮无挡 | 国产精品极品美女自在线 | 国内精品伊人久久久久7777人 | 在线观看 一区 | 久久一本精品久久精品66 | 91亚洲国产成人久久精品网址 | xxxxxwwww免费视频 | 免费国产在线观看不卡 | 91视频啪啪 | 国产美女在线看 | 婷婷99精品国产97久久综合 | 日韩中文精品亚洲第三区 | 国产一区二区不卡 | 久久噜噜噜久久亚洲va久 | 亚洲综合区图片小说区 | 91精品免费观看老司机 | 欧美高清狂热视频60一70 | 在线视频观看国产 | 激情深爱| 2021国产情侣真实露脸在线 | 99精品伊人久久久大香线蕉 | 99午夜高清在线视频在观看 | 国产一区二区自拍视频 | 一区二区三区视频免费 |