一区二区久久-一区二区三区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色久| 国产婷婷综合在线视频 | 国产精品成人久久久 | 色多多在线免费观看 | 欧美色成人综合 | 久久亚洲网 | 黄色网址中文字幕 | 在线不卡亚洲 | 国产成人小视频 | 久久久久久久网 | 在线黄观看| 男人扒开女人腿做爽爽视频网站 | 青青草国产青春综合久久 | 欧美日韩国产一区二区三区不卡 | 国产成人啪精品午夜在线播放 | 浮力影院第一页小视频国产在线观看免费 | 欧美精品亚洲精品日韩专区 | 最新国产精品亚洲 | 国产区精品一区二区不卡中文 | 五月婷婷色 | 久久久网站亚洲第一 | 国内精品手机在线观看视频 | 亚洲天堂国产精品 | 91香蕉嫩草 | 亚洲伊人久久大香线焦 | 土耳其xxxx性自由视频 | 精品久久久久久婷婷 | 一区二三区国产 | 看黄网| 99久久国产综合精品网成人影院 | 婷婷色中文网 | 精品久久久久久久久中文字幕 | 久久综合狠狠色综合伊人 | 韩国一级毛片 | 视频黄色在线 | 激情小视频在线播放免费 | 国产精品中文字幕在线观看 | 在线播放亚洲视频 | 娇小videosbest8另类 | 国产精品视频一区二区三区不卡 | 日本一区二区三区久久 |