var suggestSelector = ''; function suggestInit(selector) { suggestSelector = selector; $(selector).after('
'); $(selector).bind('input', function () { var query = $(selector).val(); $('#suggestContainer').html(''); $.ajax({ url: "/json/search?query=" + query, context: document.body }).done(function (data) { res = data.suggestions; newHtml = ''; $('#suggestContainer').html('').show(); for (var i = 0; i < res.length; i++) { newHtml += ''; } $('#suggestContainer').html(newHtml); }).fail(function (jqXHR, textStatus) { alert("Request failed: " + textStatus); }); }).bind('keydown', function (event) { suggestKeyPress(event.which); }).bind('focus', function(){if($(selector).val())$('#suggestContainer').show();}); $(selector).parent().bind('blur', function(){$('#suggestContainer').hide();}); $('#suggestContainer').hide(); } function suggestKeyPress(key) { console.log(key); switch (key) { case 27: //ESCAPE $('#suggestContainer').hide(); break case 13: //ENTER break case 38: //UP break case 40: //DOWN break default : $('#suggestContainer').show(); } }