Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.12.2018, 21:35
Новичок на форуме
Отправить личное сообщение для Никита Белан Посмотреть профиль Найти все сообщения от Никита Белан
 
Регистрация: 05.12.2018
Сообщений: 1

Помогите изменить живой поиск
Такая проблема - при вводе поисковой фразы, с третьей буквы, поиск выдает результат, и если продолжить вводить символы, результат пропадает, а потом опять выскакивает, жутко раздражает. Как сделать что-бы результат поиска не пропадал, а либо всегда был виден, либо поставить задержку (хотя бы секунду)? Сайт https://vest.in.ua/. Я js только начал изучать, буду благодарен за помощь. Как я понял за поиск отвечает этот код, приложу файл с кодом в txt формате:

function doLiveSearch(a, b) {
	return 38 != a.keyCode && 40 != a.keyCode && ($("#livesearch_search_results").remove(), updown = -1, !("" == b || b.length < 3 || (b = encodeURI(b), $.ajax({
		url: $("base").attr("href") + "index.php?route=product/search/ajax&keyword=" + b + "&filter_category_id=" + $('#search input[name=category_id]').val(),
		dataType: "json",
		success: function (a) {
			if (a.length > 0) {
				var c = document.createElement("ul");
				c.id = "livesearch_search_results";
				var d, e;
				for (var f in a) {
					if (d = document.createElement("li"), eListHr = document.createElement("hr"), eListDiv = document.createElement("div"), eListDiv.setAttribute("style", "height: 10px; clear: both;"), eListDivpr = document.createElement("span"), eListDivpr.innerHTML = (a[f].price) ? a[f].price : '', eListDivpr.setAttribute("style", "height: 14px; color: #147927;"), eListDivprspec = document.createElement("span"), eListDivprspec.innerHTML = a[f].special, eListDivprspec.setAttribute("style", "font-weight: bold; margin-left: 8px; color: #a70d0d; font-size: 16px;"), eListImg = document.createElement("img"), eListImg.src = a[f].image, eListImg.setAttribute("style", "margin-right: 10px;"), eListImg.align = "left", eListDivstatus = document.createElement("span"), eListDivstatus.innerHTML = a[f].stock, eListDivstatus.setAttribute("style", "height: 14px; color: #337ab7; margin-left: 15px; font-weight: bold;"), e = document.createElement("a"), e.setAttribute("style", "display: block;"), e.appendChild(document.createTextNode(a[f].name)), "undefined" != typeof a[f].href) {
						"" != a[f].special && eListDivpr.setAttribute("style", "text-decoration: line-through;");
						var g = decodeURIComponent(a[f].href);
						
						e.href = g.replace('&amp;', "&");
					} else e.href = $("base").attr("href") + "index.php?route=product/product&product_id=" + a[f].product_id + "&keyword=" + b;
					d.appendChild(e), c.appendChild(eListImg), c.appendChild(d), c.appendChild(eListDivpr), "" != a[f].special && c.appendChild(eListDivprspec), c.appendChild(eListDivstatus), c.appendChild(eListHr), c.appendChild(eListDiv)
				}
				$("#livesearch_search_results").length > 0 && $("#livesearch_search_results").remove(), $("#search").append(c), $("#livesearch_search_results").css("display", "none"), $("#livesearch_search_results").slideDown("slow"), $("#livesearch_search_results").animate({
					backgroundColor: "rgba(255, 255, 255, 0.98)"
				}, 2e3)
			}
		}
	}), 0)))
}


function upDownEvent(a) {
	var b = document.getElementById("livesearch_search_results");
	if ($("#search").find("[name=search]").first(), b) {
		var c = b.childNodes.length - 1;
		if (updown != -1 && "undefined" != typeof b.childNodes[updown] && $(b.childNodes[updown]).removeClass("highlighted"), 38 == a.keyCode ? updown = updown > 0 ? --updown : updown : 40 == a.keyCode && (updown = updown < c ? ++updown : updown), updown >= 0 && updown <= c) {
			$(b.childNodes[updown]).addClass("highlighted");
			var d = b.childNodes[updown].childNodes[0].text;
			"undefined" == typeof d && (d = b.childNodes[updown].childNodes[0].innerText), $("#search").find("[name=search]").first().val(new String(d).replace(/(\s\(.*?\))$/, ""))
		}
	}
	return !1
}


$("#search").find("[name=search]").first().keyup(function (a) {
		doLiveSearch(a, this.value)
	}).focus(function (a) {
		doLiveSearch(a, this.value)
	}).keydown(function (a) {
		upDownEvent(a)
	}).blur(function () {
		window.setTimeout("$('#livesearch_search_results').remove();updown=0;", 1500)
	}), $(document).bind("keydown", function (a) {
		try {
			13 == a.keyCode && $(".highlighted").length > 0 && (document.location.href = $(".highlighted").find("a").first().attr("href"))
		} catch (a) {}
	});
Вложения:
Тип файла: txt main.txt (24.0 Кб, 0 просмотров)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите изменить цыкл перебора и вывода результата SmartWare Общие вопросы Javascript 9 28.02.2016 20:33
Помогите изменить плавность прокрутки virtas Элементы интерфейса 0 28.07.2015 21:53
Изменить условие в скрипте. Помогите несмыслящему. Mafins Общие вопросы Javascript 2 06.03.2015 01:49
Живой поиск JQUERY + AJAX + PHP + MYSQL dimi007 AJAX и COMET 2 22.07.2014 13:50
выбрать и изменить стиль элемента. Помогите найти ошибку nabiullin11 Элементы интерфейса 16 02.09.2011 11:23