jQuery blur()不工作?

jQuery blur()不工作?,jquery,blur,Jquery,Blur,在这里完全被难住了。 尝试一些相当简单的东西,但不起作用: $("input.input1, textarea.input1").focus(function(){ $(this).addClass("input2").removeClass("input1"); }); $("input.input2, textarea.input2").blur(function(){ $(this).addClass("input1").removeClass("input2"); });

在这里完全被难住了。 尝试一些相当简单的东西,但不起作用:

$("input.input1, textarea.input1").focus(function(){
    $(this).addClass("input2").removeClass("input1");
});
$("input.input2, textarea.input2").blur(function(){
    $(this).addClass("input1").removeClass("input2");
});
基本上,模糊没有开火。 我点击输入框,框就变了。 我点击远离盒子,什么也没发生。
这方面的任何帮助都将是非常棒的。

因为您影响的是相同的元素,所以更容易链接:

$("input.input1, textarea.input1").focus(function(){
    $(this).addClass("input2").removeClass("input1");
}).blur(function(){
    $(this).addClass("input1").removeClass("input2");
});

至于为什么jQuery不能正常工作,恐怕我不确定;虽然我怀疑这和选择器有关

请尝试以下代码:

$("input.input1, textarea.input1").bind('focus blur', function(){
    $(this).toggleClass("input2").toggleClass("input1");
});
如果不起作用,您可能需要使用
focusout
而不是
blur

$("input.input1, textarea.input1").bind('focus focusout', function(){
    $(this).toggleClass("input2").toggleClass("input1");
});

您需要使用委托处理程序,因为在应用处理程序时,输入没有类
input2

$(document).on('focus','input.input1, textarea.input1', function() {
    $(this).addClass('input2').removeClass('input1');
});
$(document).on('blur','input.input2, textarea.input2', function() {
    $(this).addClass('input1').removeClass('input2');
});
然而,可能有更好的方法来做到这一点。我建议使用第三个类来标记需要切换类的输入,然后在事件发生时切换类

$('.needsToggle').on('focus blur', function() {
     $(this).toggleClass('input1 input2');
});
如果它们总是有类
input1
来启动,那么您可以使用该类,而不是使用jQuery<1.7时需要使用的
needsToggle

如果你在1.7或更高


不要使用
.live()
,因为它的速度会慢一些。

如果使用ajax加载的元素使用$(文档)。在(事件、选择器、函数)上,因为标准件例如$(选择器)。单击(函数()…将不起作用

firebug中的任何线索?您使用的是什么版本的jquery?太棒了,谢谢。真不敢相信我以前从未遇到过这个问题。这真的很奇怪。这解决了我的问题,我之前尝试了
$(“.inputelem”)。在(“blur”,function(){}上);
。这对我来说不起作用,尽管focus的效果很好。但是,当我尝试这样做时:
$(文档)。在(“blur”、“.inputelem”、function(){})上;
,效果很好。
$(文档)和(“blur”、“.inputelem”、function(){});
$(“inputelem”)。在(“blur”,function(){})上有什么区别
@SexyBeast区别在于后者仅适用于现有元素,如果元素被删除并重新创建,则需要重新应用。前者应用于文档级别(始终存在)但仅当目标元素与筛选器匹配时才会调用。在筛选和应用事件处理程序之前,事件必须一直冒泡到文档。注意:选择器可以是文档以外的内容,但必须是DOM中未替换的内容。更奇怪的是。My元素位于sta右侧的页面中rt,并且从未删除。它仍然不起作用。@SexyBeast-是否有可能在页面完成加载之前应用处理程序?它应该应用在文档就绪处理程序内部和/或正文底部。
focusout
事件为我做了这件事,并结合
blur
绝对确定:)