jQuery live()没有在Firefox中显示文本光标

时间:2010-12-12 13:05:51

标签: javascript jquery firefox

我正在使用jQuery live()函数来更改表单文本输入的边框颜色,以便用户更好地指示他们当前正在键入的元素。我更容易使用live()超过bind(),因为在某些情况下会动态地将新表单输入插入到页面中。

从阅读jQuery documentation for live()我理解每个处理程序必须返回false以防止其他处理程序执行。无论我是否误解了这实际意味着什么,这里是我必须添加的代码并从表单输入中删除边框颜色。

$('input.highlight').live({
    focus: function() {
        $(this).parent('span').addClass('input-focus');
        return false;
    },
    blur: function() {
        $(this).parent('span').removeClass('input-focus');
        return false;
    }
});

这在Chrome和Safari中非常有效,但在Firefox中,闪烁的文本光标在有焦点时不会出现在表单输入中。如果我删除它显示的return false;。这可能是我遇到的jQuery错误吗?

1 个答案:

答案 0 :(得分:1)

嘿,我遇到了同样的问题。我通过添加$(this).focus();克服了这个问题。在返回false之前。

$('input.highlight').live({
    focus: function() {
        $(this).parent('span').addClass('input-focus');
        $(this).focus();
        return false;
    },
    blur: function() {
        $(this).parent('span').removeClass('input-focus');
        return false;
    }
});

希望这有帮助。