2
我使用jQuery live()
函数来更改表单文本输入的边框颜色,以便为用户更好地指示它们当前正在键入的元素。对我来说更容易使用live()
而不是bind()
,因为有些情况下新的表单输入会动态插入到页面中。jQuery live()不会在Firefox中显示文本光标
通过阅读通过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错误吗?
它的方式.Live气泡和返回false阻止某些事件从代理上链起来更高 – Raynos 2010-12-12 14:24:49
那么Chrome和Safari在设置边框颜色类并返回false之后或在回报,Firefox不是? – greenie 2010-12-12 15:00:56