我正在使用Valums AJAX Uploader,即使在IE中也能正常运行。
当我尝试使用诱饵隐藏Valums标记时,会出现问题。
$('.control.addphoto:not(.controlactive)').live('click', function(){
$('#upload input[type=file]').click();
});
所以,真正的输入是隐藏的,但点击我的控件会激活它。 “选择文件”对话框在IE中显示得很好但是一旦我点击确定文件上传失败(它甚至没有到达服务器)。当我不使用诱饵时(即当我直接点击输入时)它可以正常工作。
Chrome和Firefox中的一切正常。
为什么会这样?我无法理解,因为它只是一个诱饵而且它正在调用实际输入。任何线索?什么方法使诱饵更“透明”?
obs:刚刚发现诱饵无法在Opera上运行(不会打开对话框)。再次,直接点击输入工作正常。不应该这样,因为我正在使用jquery(它被认为是crossbrowser)?
Opera实际上不允许通过诱饵触发输入行为。
使用Kevin B的替代方案,我已经能够解决我的问题了。另一方面,我仍然不知道为什么IE会发生这种情况,并会为了知识而打开这个问题。
答案 0 :(得分:2)
对此的一个解决方案是使触发元素不可见,但不隐藏,例如为其提供与其后面的元素相同的背景颜色。然后,您可以将它放在“诱饵”的顶部,这样当您实际点击文件输入时,它看起来就像您点击诱饵一样。