From 7b7ad0a285e5bd619dc6481e7f5dce6401c06371 Mon Sep 17 00:00:00 2001 From: Jim Myhrberg Date: Wed, 10 Mar 2010 19:44:34 +0200 Subject: [PATCH] better handling when both keyboard and mouse is used to navigate suggested results --- suggest_results/jquery.suggest_results.css | 1 - suggest_results/jquery.suggest_results.js | 15 +++++++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/suggest_results/jquery.suggest_results.css b/suggest_results/jquery.suggest_results.css index 75239c8..be7f454 100644 --- a/suggest_results/jquery.suggest_results.css +++ b/suggest_results/jquery.suggest_results.css @@ -47,7 +47,6 @@ display: block; } -#suggest_results li.result a:hover, #suggest_results li.result.selected a { background: #698DE5; color: #fff; diff --git a/suggest_results/jquery.suggest_results.js b/suggest_results/jquery.suggest_results.js index 1addbb2..5272523 100644 --- a/suggest_results/jquery.suggest_results.js +++ b/suggest_results/jquery.suggest_results.js @@ -119,6 +119,11 @@ self.list.html(html); $(".result", self.list).click(function(){ self.redirect_to($("a", $(this)).attr("href")); + }).hover(function(){ + $(".selected", self.list).removeClass("selected"); + $(this).addClass("selected"); + },function(){ + $(this).removeClass("selected"); }); }; @@ -169,14 +174,15 @@ var limit = self.current_results.length; if (limit > 0) { if (self.selected_result === null) { + $(".selected", self.list).removeClass("selected"); self.selected_result = 0; $("#suggested_result_" + self.selected_result, self.box).addClass("selected"); } else if (self.selected_result + 1 < limit) { - $(".selected", self.box).removeClass("selected"); + $(".selected", self.list).removeClass("selected"); self.selected_result++; $("#suggested_result_" + self.selected_result, self.box).addClass("selected"); } else { - $(".selected", self.box).removeClass("selected"); + $(".selected", self.list).removeClass("selected"); self.selected_result = null; elm.putCursorAtEnd(); }; @@ -189,14 +195,15 @@ var limit = self.current_results.length; if (limit > 0) { if (self.selected_result === null) { + $(".selected", self.list).removeClass("selected"); self.selected_result = limit - 1; $("#suggested_result_" + self.selected_result, self.box).addClass("selected"); } else if (self.selected_result > 0) { - $(".selected", self.box).removeClass("selected"); + $(".selected", self.list).removeClass("selected"); self.selected_result--; $("#suggested_result_" + self.selected_result, self.box).addClass("selected"); } else { - $(".selected", self.box).removeClass("selected"); + $(".selected", self.list).removeClass("selected"); self.selected_result = null; elm.putCursorAtEnd(); };