jquery 类选择器不起作用

标签 jquery class

我有一个输入字段,当它获得焦点时我向其中添加一个类。如果失去焦点,则应删除该类并添加另一个类。

<input type="text" class="input" />

$(document).ready(function () {

        $(".input").focus(function () {
            $(this).addClass("focus");
        });

        $(".input.focus").blur(function () {
            $(this).removeClass("focus").addClass("error");
        });
});

.input.error
{           
    border: 2px solid Red;         
}

.input.focus
{           
    border: 2px solid Yellow;       
}

添加类效果很好,但模糊功能不行。有什么问题吗?

最佳答案

当您绑定(bind) blur 处理程序时,您的选择器 ($(".input.focus")) 不会返回任何元素。

您需要绑定(bind)一个适用于当前和 future 元素的动态处理程序:

$('body').on('blur', '.input.focus', function () {
  $(this).removeClass("focus").addClass("error");
});

为了提高速度,请将 body 替换为这些元素的父容器。

虽然这对于对焦和模糊来说有点矫枉过正。你可以尝试这样的事情:

$('.input').on('focus', function() {
  $(this).removeClass('error').addClass('focus');
}).on('blur', function() {
  $(this).removeClass('focus').addClass('error');
});

关于jquery 类选择器不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11546096/

相关文章:

javascript - 在特定时间(秒)后调用 js url

vba - 类定义如何在 VBA 中工作

c++ - 如何实现模板内部类函数(C++)

c++ - 为什么我不能只使用前向声明 C++ 来声明类的静态成员?

c# - 想要清除文本框+焦点文本框+防止同一按钮上的asp.net回发

javascript - 通过将图像附加到列表的元素,其他元素会下降

jquery - 防止 css 在 drop 时更新

javascript - 如何在 Bootstrap 数据目标上创建 Accordion 样式折叠?

javascript - ES6/ES7 扩展同名类

c++ - 比较 C 和 C++ 中的结构