jQuery的搜索關鍵詞自動匹配插件


  相信許多人都會用過搜索欄自動匹配關鍵詞的功能,無論是像google的專業搜索引擎,還是普通的網站,現在許多都用上了這種關鍵詞匹配技術,本文介紹的用jQuery實現的關鍵詞匹配技術,當然要整合到自己的系統中還需要鏈接后台的代碼。

  在現在的Web設計中,提高用戶體驗是企業最為注重的內容之一。在搜索表單中,根據輸入的部分內容進行關鍵字匹配提示功能,就是最直觀和常用的交互體驗,類似功能已經被多數的互聯網網站應用。例如Google的搜索框效果如下:

這里介紹一個jQuery實現搜索關鍵字自動匹配提示方法。jQuery AutoComplete 是一個基於jQuery實現搜索關鍵詞自動匹配提示的插件,該插件可擴展性強,表現性能優越,方便整合到自己的項目中使用;兼容IE 6.0+, FF 2+, Safari 2.0+, Opera 9.0+, and Chrome 1.0+ 等主流瀏覽器。

演示效果http://www.devbridge.com/projects/autocomplete/jquery/#demo

下面是具體的使用方法:

1,使用設置

首頁,要把插件的js代碼嵌入到你自己的項目中去。

1
2
< script src = "jquery.js" type = "text/javascript" > <!--mce:0--> </ script >
< script src = "jquery.autocomplete.js" type = "text/javascript" > <!--mce:1--> </ script >

2,使用方法

為要實現自動匹配提示的 input 表單添加 AutoComplete 功能。

1
< input id = "query" name = "q" />

初始化 AutoComplete 對象,確保正確加載 DOM 對象,否則IE下的用戶可能會出現錯誤。

1
2
3
4
5
6
7
8
9
10
11
12
$( '#query' ).autocomplete({
         serviceUrl: 'service/autocomplete.ashx' , // Page for processing autocomplete requests
         minChars: 2, // Minimum request length for triggering autocomplete
         delimiter: /(,|;)\s*/, // Delimiter for separating requests (a character or regex)
         maxHeight: 400, // Maximum height of the suggestion list, in pixels
         width: 300, // List width
         zIndex: 9999, // List's z-index
         deferRequestBy: 0, // Request delay (milliseconds), if you prefer not to send lots of requests while the user is typing. I usually set the delay at 300 ms.
         params: { country: 'Yes '}, // Additional parameters
         onSelect: function(data, value){ }, // Callback function, triggered if one of the suggested options is selected,
         lookup: [' January ', ' February ', ' March'] // List of suggestions for local autocomplete
     });

根據文本表單中的輸入信息,進行關鍵字提示匹配。

1
2
3
4
5
{
     query: 'Li' , // Original request
     suggestions:[ 'Liberia' , 'Libyan Arab Jamahiriya' , 'Liechtenstein' , 'Lithuania' ], // List of suggestions
     data:[ 'LR' , 'LY' , 'LI' , 'LT' ] // Optional parameter: list of keys for suggestion options; used in callback functions.
  }

jQuery AutoComplete 插件支持 on/off功能,從而控制效果的開關。

1
2
3
4
var ac = $( '#query' ).autocomplete({ /*parameters*/ });
     ac.disable();
     ac.enable();
     ac.setOptons({ zIndex: 1001 });

3,設置表現樣式

最后,用div和css美化表現效果。

1
2
3
4
5
6
7
8
< div class = "autocomplete-w1" >
< div id = "Autocomplete_1240430421731" class = "autocomplete" style = "width: 299px;" >
< div >< strong >Li</ strong >beria</ div >
< div >< strong >Li</ strong >byan Arab Jamahiriya</ div >
< div >< strong >Li</ strong >echtenstein</ div >
< div class = "selected" >< strong >Li</ strong >thuania</ div >
</ div >
</ div >
1
2
3
4
5
.autocomplete-w 1 { background : url (img/shadow.png) no-repeat bottom right ; position : absolute ; top : 0px ; left : 0px ; margin : 6px 0 0 6px ; /* IE6 fix: */ _background : none ; _margin : 1px 0 0 0 ; }
.autocomplete { border : 1px solid #999 ; background : #FFF ; cursor : default ; text-align : left ; max-height : 350px ; overflow : auto ; margin : -6px 6px 6px -6px ; /* IE6 specific: */ _height : 350px ; _margin : 0 ; _overflow-x: hidden ; }
.autocomplete .selected { background : #F0F0F0 ; }
.autocomplete div { padding : 2px 5px ; white-space : nowrap ; overflow : hidden ; }
.autocomplete strong { font-weight : normal ; color : #3399FF ; }

jQuery AutoComplete 插件官方鏈接

插件介紹: www.devbridge.com/projects/autocomplete/jquery/

插件下載: www.devbridge.com/projects/autocomplete/jquery/#download

這里還有一種基於MooTools框架的關鍵字自動匹配提示方法:

MooTools: www.ajaxdaddy.com/mootools-autocomplete.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM