![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
function Suggest(textInput, config) { if (!(this instanceof Suggest)) { return new Suggest(textInput, config); } var now = function() { return (new Date).getTime(); }; var EMPTY = "", SPACE = " ", HIDDEN = "hidden", NULL = null, UNDEFINED, WIN = window, DOC = document, BODY = document.body, ARRAY_VALUE = "[object Array]", EMPTY_FUNCTION = function() { }, PREFIX_CLS = EMPTY, //全局前缀,方便自定义 CLS_CONTAINER = PREFIX_CLS + "sug-list-container", CLS_CONTENT = PREFIX_CLS + "sug-list-content", CLS_ITEM_SELECTED = PREFIX_CLS + "sug-item-selected", CLS_ITEM_KEY = PREFIX_CLS + "sug-item-key", CLS_ITEM_RESULT = PREFIX_CLS + "sug-item-result", DEFAULT_VALUE = "", //input 默认值 isIE = /\w/.test('\u0130'), isIE6 = isIE && !window.XMLHttpRequest, isIE9 = document.documentMode && document.documentMode === 9, toString = Object.prototype.toString; var timeout = false, //script 请求是否过时 timeoutID = null, lockIE = NaN, reqScript = '', //jsonp请求标签 latestReqScriptTime = '', scriptDataIsOut = false, //非ie6-8判断是否数据过期 isLocalDataSource = false, //根据config判断是否是本地数据源 selectedIndex = -1, //选中项索引 selectedItem = null, //当前选中项 taobaoURL = "http://suggest.taobao.com/sug?callback=callback&q=", youaURL = "http://youa.baidu.com/suggest/se/s?cmd=suggest&type=kwd&max_count=10&callback=callback&keyword=", baiduURL = "http://suggestion.baidu.com/su?p=3&cb=window.bdsug.sug", //在键盘操作up,down时,忽略鼠标的mousemove,mousedown操作 mouseMoveFlag = true, //config全部小写 defaultConfig = { queryname: 'wd', charset: 'gbk', callbackname: 'callback', callbackfn: 'bdsug.sug', resultkey: 's', containerwidth: 0, offsettop: -1, usecache: true, //string || json object datasource: "http://suggestion.baidu.com/su?p=3&cb=window.bdsug.sug", autofocus: false, inputdelay: inputDelay, updowndelay: updownDelay, /*是否使用外部css文件,动态添加 *使用外部定制样式 * 外部定制css
github:嘿嘿