按下箭头键时 JS Div 不会改变颜色
JS Div not changing color when arrow key is pressed
对,这很奇怪,我不知道为什么会发生这种情况,但我正在做的是我有一个搜索字段,用户在其中输入名称,我希望它显示建议,现在这是有效的,但是当用户使用箭头键(向上或向下)时,对象应该突出显示, 基本上就像标准的自动完成一样,只是设计不同。
问题是隐藏位,当我按下向下箭头时,只要我按住箭头键,对象就会亮起,但它不会保持亮起。我不知道为什么,我在下面发布了相关代码,希望有人可以提供帮助:
主文件(文本字段):
<div style="position: relative; top: 0px; left: -51px; width: 200px;">
<form method="GET" action="" style="padding: 0px; padding-right: 10px; margin: 0px;">
<input type="text" id="search_field" onkeyup="javascript: suggestions(this.value);" autocomplete="off" style="border: 0px solid #ffffff; width: 250px; padding-left: 20px; color: #ffffff; height: 30px; border-bottom: 1px solid #333333; background: #222222;" name="q" placeholder="Search MVDb">
</form>
<div style="position: absolute; left: 2px; top: 8px;">
<img height="15" src="img/search.png">
</div>
</div>
<div id="result" style="z-index: 100; position: absolute; cursor: pointer; top: 86px; right: 5px; width: 251px; background: #eeeeee;">
</div>
带有 ID 结果的div 是将建议加载到的位置。
主文件 (jquery/js):
function suggestions(value){
$.ajax({
url: 'get_suggestion.php?q='+value,
success: function(data) {
$('#result').html(data);
}
});
}
$(document).ready(function() {
$("#search_field").keydown(function(e) {
if (e.keyCode == 40) {
//DOWN
document.getElementById('search_result_0').style.background = "#333333";
e.preventDefault();
return false;
}
else if (e.keyCode == 38) {
//UP
e.preventDefault();
return false;
}
});
});
get_suggestion.php:
<?php
include 'js/db/db.php';
$value = $_GET["q"];
if($value==""){
}
else{
$value = trim($value);
$query="select * from movies where title like '"%$value%'" LIMIT 6";
$rt=mysql_query($query);
echo mysql_error();
$counter = -1;
while($nt=mysql_fetch_array($rt)){
$counter = $counter+1;
?>
<div id="search_result_<?php echo $counter ?>" cellspacing="0" cellpadding="0" onClick="window.location = 'movie.php?movie=<?php echo $nt['title']?>'" width="100%" style="color: #333333; cursor: pointer;">
<table cellspacing="0" cellpadding="0">
<tr valign="top">
<td style="padding: 5px; width: 30px;">
<img height="60" src="http://210.177.0.75/mvdb/img/covers/<?php echo $nt['title'] ?>.jpg">
</td>
<td align="left" style="padding: 5px;">
<?php
$title = substr($nt[title], 0, 17);
if($title == $nt[title]){
}
else{
$title = $title."...";
}
?>
<font style="font-family: Arial; font-size: 15px; font-weight: bold;"><?php echo $title ?></font> <img src="img/age/BBFC <?php echo $nt['bbfc_age'] ?>_small.png"><br>
<font style="font-family: Arial; font-size: 12px; color: #aaaaaa;">Tom Cruise, Michelle Monaga</font>
<font style="font-family: Arial; font-size: 12px; color: #aaaaaa;">Released: 4 May 2006</font>
</td>
</tr>
</table>
</div>
<?php
}
}
?>
我试图尽可能好地格式化代码。我认为可能是当用户按下箭头键时,ajax 请求会触发,但这没有任何意义,因为我使用 e.preventDefault() 来阻止这种情况,有谁知道为什么会发生这种情况?
你对执行 ajax 请求的箭头键是正确的。您在键控功能中使用了e.preventDefault
,但在键控函数中未使用。我建议你把它放在你的keydown函数下面,而不是一个onkeyup
属性:
$("#search_field").keyup(function(e) {
if (e.keyCode < 41 && e.keyCode > 36) {
suggestions(this.val());
}
});
那应该出来了。
相关文章:
- 鼠标光标改变Javascript链接的DIV
- 切换一个Div与按钮改变左边距属性
- 按下箭头键时 JS Div 不会改变颜色
- Onload Javascript不会改变DIV样式
- JavaScript改变DIV背景使用ID
- 当定位为绝对位置时,将DIV居中,并改变DIV中的内容
- 改变颜色的标签和Div周围输入+标签点击
- Div CSS在悬停时不改变
- 改变DIV大小vs改变BG大小(性能)
- Div改变高度,当用户点击内容JS
- 如何从页面底部的<链接滚动到#header DIV以及如何改变动画速度- JQuery 1.8.3
- 根据窗口内部高度改变Div高度
- 当次要Div '的可见性被设置为'none'时,如何改变Div对齐方式
- 改变颜色导航Div从特定的Div传递
- 改变在IE 11中不工作的DIV的旋转速度,使用JS来更新CSS动画属性
- 如何根据输入到表单中的内容改变Div的值
- 用JavaScript改变DIV可见性
- 宽度改变-粘Div
- 使用YUI改变标题DIV的不透明度
- 当滚动到另一个DIV上时,改变一个DIV的css