javascript - 输入 :focus only working once

标签 javascript html css focus border

Fiddle

我希望我的文本框在 input:focus 处有一个 #96f226 边框,它可以工作。但是如果你点击离开然后点击回来,它就不再有那个绿色边框了。

CSS:

#input {
  background: #4a4a4a;
  border: 1px solid #454545;
  color: #96f226;
}
#input:hover {
  background: #656565;
}
#input:focus {
  outline: none;
  border: 1px solid #96f226
}

HTML:

<input type='text' id='input'>

编辑:


只有当您点击进入、开始输入、点击退出,然后然后点击进入时,它才会这样做。

最佳答案

发生这种情况的原因是因为您的 jQuery 正在向第 9 行的输入添加内联样式:

 $('#input').css('border', '1px solid #454545');

内联样式覆盖样式表中定义的样式。

一个快速的解决方法是将 !important 添加到您的 CSS 中:

#input:focus {
    outline: none;
    border: 1px solid #96f226 !important;
}

这行得通,但更像是一种 hack。

如果我没理解错的话,您是在添加内联样式以在出错后移除红色边框。一个更好的方法是简单地删除内联样式。这将解决冲突,您不需要添加 !important hack。将 jQuery 中的第 9 行替换为以下内容:

$('#input').css('border', '');

关于javascript - 输入 :focus only working once,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19801127/

相关文章:

javascript - 模态变暗整个屏幕,没有什么是可点击的

javascript - 通过 chrome 扩展选项有条件地注入(inject) CSS

javascript - 如何在Javascript中一次性过滤进出数组元素

javascript - XSTLProcessor 绕过 <tr> 和 <td> 标签

javascript - 在 textarea 字段中保留回车符(十六进制 0D)

jQuery .hover 在 Chrome 或 Safari 中不起作用

javascript - jquery合并两个数组

javascript - 如何使用 re() 使用 scrapy 从 javascript 变量中提取数据?

javascript - 如何从代码隐藏调用javascript函数

javascript - 使用 sweetalert 加载进度表提交