我有一个带有一些文本的输入字段,我正在尝试切换它的可见性。我遇到的问题是在字段上切换幻灯片动画后,它的文本是不可见的。但是,当该字段成为焦点时,文本再次可见。
我已经在 Safari/IE/FF 上对此进行了测试,并且输入文本仍然可见,但我无法弄清楚 Chrome 为何如此奇怪。
我有一个带有一些文本的输入字段,我正在尝试切换它的可见性。我遇到的问题是在字段上切换幻灯片动画后,它的文本是不可见的。但是,当该字段成为焦点时,文本再次可见。
我已经在 Safari/IE/FF 上对此进行了测试,并且输入文本仍然可见,但我无法弄清楚 Chrome 为何如此奇怪。
问题是 jQuery 将输入的显示设置为inline-block
它执行的时间.slideDown()
,这使得 Chrome 不正确地呈现它。
您有几个选项,例如将输入包装在 div中,或将显示设置为阻止
您可以尝试通过放入 slideDown() 的回调来手动聚焦它:
$(this).focus()
这并不能回答为什么 Chrome 行为异常的问题,但是,作为一种解决方法,如果您将输入包含在 div 中:
<div id="text"><input type="text" /></div>
然后slideToggle
是 div:
$(document).on('click', '#slide', function() {
$('#text').slideToggle();
});
这似乎在 Chrome 中有效。
作为变体,您可以使用$('input').toggle('slow')