我必須建立與AJAX即時搜索,這是當你開始輸入的結果出現,然後如果你點擊任何地方對身體的效果消失,在輸入字段結果再次出現onmouse對像。當點擊輸入欄內的結果消散。onclick事件不工作,Onmouse工作雖然
我想這個結果停留在輸入欄中點擊時onmouse事件後開放。爲此我添加了一個點擊事件,但它不起作用。
請參閱規範和提出任何可能的方式來做到這一點。
<script type="text/javascript">
function showResult(str) {
if (str.length == 0) {
document.getElementById("search-result").innerHTML = "";
document.getElementById("search-result").style.border = "0px";
return;
}
if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
}
else { // code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("search-result").innerHTML = xmlhttp.responseText;
document.getElementById("search-result").style.border = "1px solid #A5ACB2";
document.getElementById("search-result").style.display = "block";
document.getElementById("search-input").onmouseover = function() {
show_box()
};
document.getElementById("search-input").onclick = function() {
show_box()
};
}
}
xmlhttp.open("GET", "instant-search.php?keyword=" + str, true);
xmlhttp.send();
}
function close_box() {
fadeOut();
document.getElementById("search-result").style.display = "none";
}
function show_box() {
setOpacity(0);
document.getElementById("search-result").style.display = "block";
fadeIn();
}
document.onclick = function() {
close_box()
};
function setOpacity(value) {
document.getElementById("search-result").style.opacity = value/10;
document.getElementById("search-result").style.filter = 'alpha(opacity=' + value * 10 + ')';
}
function fadeIn() {
for (var i = 20; i <= 100; i++)
setTimeout('setOpacity(' + (i/5) + ')', 5 * i);
}
function fadeOut() {
for (var i = 20; i <= 100; i++)
setTimeout('setOpacity(' + (5 - i/5) + ')', 5 * i);
}
</script>
HTML代碼
<input name="keyword" type="text" size="50" id="search-input" onkeydown="showResult(this.value)" autocomplete="off" />
<div id="search-result"></div>
你的html中的'onclick'事件在哪裏? – 2012-08-03 07:54:22
它在JavaScript中,我也需要它在html中。 – 2012-08-03 07:55:38
@Bhuvan Rikka:不是在html中,而是以javascript呈現。 – 2012-08-03 07:55:42