-
Вебмастеру
(
http://forum.oszone.net/forumdisplay.php?f=22)
Ajax - быстрый поиск
Сделал на сайте быстрый поиск. Все отлично работает, проблема в одном - не исчезает блок с результатами поиска если кликнуть в любом месте сайта (вне блока)
Этот код в HEAD
Код:
<script type="text/javascript" language="javascript">
var req;
function loadXMLDoc(key) {
var url="search.php?keyword="+key;
// Internet Explorer
try { req = new ActiveXObject("Msxml2.XMLHTTP"); }
catch(e) {
try { req = new ActiveXObject("Microsoft.XMLHTTP"); }
catch(oc) { req = null; }
}
// Mozailla/Safari
if (!req && typeof XMLHttpRequest != "undefined") { req = new XMLHttpRequest(); }
// Call the processChange() function when the page has loaded
if (req != null) {
req.onreadystatechange = processChange;
req.open("GET", url, true);
req.send(null);
}
}
function processChange() {
// The page has loaded and the HTTP status code is 200 OK
if (req.readyState == 4 && req.status == 200) {
// Write the contents of this URL to the searchResult layer
getObject("quicksearch").innerHTML = req.responseText;
}
}
function getObject(name) {
var ns4 = (document.layers) ? true : false;
var w3c = (document.getElementById) ? true : false;
var ie4 = (document.all) ? true : false;
if (ns4) return eval('document.' + name);
if (w3c) return document.getElementById(name);
if (ie4) return eval('document.all.' + name);
return false;
}
</script>
Сама форма
Код:
<input name="keyword" id="search_area" type="text" onKeyUp="loadXMLDoc(this.value);" autocomplete="off" />
<div id="quicksearch"></div>
CSS-код из файла стилей
Код:
#quicksearch {text-align:left; position: absolute; top: 110px; left: 645px; background-color:#FFFFE8; color: #333333; font-size:12px; z-index:500; width:300px; }
#quicksearch ul, #quicksearch li {padding:0; margin:0; border:0; list-style:none;}
#quicksearch li {border-bottom:solid 1px #DEDEDE;}
#quicksearch li a{display:block; padding:4px; text-decoration:none; color:#000000; font-weight:bold;}
#quicksearch li a small{display:block; text-decoration:none; color:#999999; font-weight:normal;}
#quicksearch li a:hover{background:#FFFFCC;}
#quicksearch ul {padding:6px;}
Помогите пожалуйста
|
не вижу в коде, за счет чего он должен исчезать. Повесьте на input onblur="this.style.display='none'" какой-нибудь
|
Спасибо за ответ.
При наборе текста в input появляется выпадающий список с перечнем названий (как в поиске Гугла).
В коде изначально не было предусмотрено исчезновение этого списка. Этот пример нашел в Инете.
Если onblur повесить на input, исчезает сам input, а не список. А нужно, чтобы исчезал список, если кликнуть в другом месте сайта.
Пробовал через jQuery autocomplete, но там проблемы с поиском, если вводить поисковые слова через пробел.
Пробовал разные варианты с этим кодом, не получается.
Помогите плиз
|
можно и так
Код:
window.document.onclick = function(e)
{
var e = e || window.event;
var r = e.target || e.srcElement;
if(r.id != 'quicksearch' && r.id != 'search_area') document.getElementById('quicksearch').style.display = 'none';
}
|
Спасибо огромное - работает!
Только недавно начал JavaScript, в основном по PHP + MySQL
|
Время: 17:15.
© OSzone.net 2001-