2014-10-30 67 views
1

如果我使用css属性display: none隐藏它,Safari不会打开元素!它适用于所有其他浏览器。Safari显示:无

这里是我的html:

<div id="f" class="btn">Select Image</div> 
<input type="file" id="file" style="display:none;" name='athletes_imageid' value="" /> 

现在,在我的jQuery我想通过点击该 “选择图片” <div>打开id="file"

$("#f").click(function() { 
    $("#file").click(); 
}); 
+0

是否'#F'有任何高度?尝试给它一些高度 – 2014-10-30 07:57:33

+0

哈哈什么是高度? – Orangutan 2014-10-30 07:59:10

+0

在div#f上使用'style =“height:10px”''属性 – 2014-10-30 08:11:29

回答

0

设置类型= '隐藏' 唐不使用风格。

**编辑:**

尝试:

#file { 
    height: 0; 
    visibility: hidden; 
    width: 0; 
} 
+1

他正在尝试打开文件对话框 – 2014-10-30 08:00:16

+0

我无法做到这一点,我的输入打开一个文件选择窗口上传。 – Orangutan 2014-10-30 08:01:00

+0

啊,你可以尝试可见性:隐藏,而不是设置一个高度和宽度为0 :) – Paddy 2014-10-30 09:36:06

0

尝试这个

<div id="f" class="btn">Select Image 
    <input type="file" class="file" name='athletes_imageid' value="" /> 
</div> 

的风格

.btn{ 
    position: relative; 
} 
.file{ 
    position: absolute; 
    top: 0; 
    bottom: 0; 
    left: 0; 
    bottom: 0; 
    opacity: 0; 
} 
+0

你知道你可以覆盖边距。对? – 2014-10-30 09:33:22

+0

这不是CSS的意义上的边际,但我只是重试,它已经消失了,所以我的错对不起(我删除了无用的评论) – lapin 2014-10-30 09:45:37

+0

你可以upvote我的答案?如果它帮助你。 – 2014-10-30 09:50:33

0

你可以仅仅删除display:none,并添加以下这是CSS最简单和跨浏览器的方式,我知道该怎么做的伎俩:

#file { 
    height: 0; 
    position: absolute; 
    width: 0; 
} 

,因为它似乎不支持我的Safari浏览器版本反正我不为您提供的jsfiddle;)