我有这段代码
<div id="main">
<div id="u-button">Upload Photo</div>
<form id="u_form" action="upload.php" method="post"
enctype="multipart/form-data" target="upload_t">
<input id="upload" type="file" name="img" class="multi"/>
<iframe id="upload_t" class="hide" name="upload_t" src=""></iframe>
</form>
</div>
将div#main
设置为与div#u-button
类似的高度和宽度,并将overflow设置为hidden。
我们的想法是隐藏表格。我不想要默认文件上传输入元素的样式,所以我想要点击div#u-button
,我希望它在input#upload
上触发点击事件。
我的jQuery代码就像
$('#u-button').live('click', function(){ $("#upload").click(); });
这似乎适用于某些浏览器(所有浏览器的较新版本),但在某些较旧的浏览器中,它不起作用。
任何人都可以帮我调整代码,使其适用于更多浏览器版本吗?
答案 0 :(得分:0)
如果要触发元素事件,请使用jQuery命令trigger()
。
答案 1 :(得分:0)
您可能试图将input#upload
隐藏为display=none
或visbilty:hidden
。出于安全原因,这会破坏旧浏览器中的click事件。
尝试不隐藏#upload
。您可以将u-button
提高z-index
和position:absolute
,以便div可以涵盖#unload
。
或者点按“{1}}”按钮,然后使用position:absolute
将其推离屏幕。