如何另一个元素
问题描述:
在处理输入类型= jQuery的单击事件的文件我有这个代码如何另一个元素
<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
并设置溢出为隐藏。 这个想法是隐藏表单。我不想要默认的文件上传输入元素的风格,所以我想要做的是,点击div#u-button
,我想让它触发input#upload
上的点击事件。
我的jQuery的代码是一样
$('#u-button').live('click', function(){ $("#upload").click(); });
这似乎有些浏览器(所有的浏览器的新版本),但在一些老的浏览器,这是行不通的工作。
任何人都可以帮助我调整代码,使其在更多的浏览器版本上工作?
答
如果要引发元素事件,请使用jQuery命令trigger()
。
答
你可能试图隐藏input#upload
作为display=none
或visbilty:hidden
。出于安全原因,这会在较旧的浏览器中打破点击事件。
尽量让#upload
不隐藏。你可以让你的u-button
高出z-index
和position:absolute
,这样div可以覆盖#unload
。
或使您的卸载按钮position:absolute
,并推动它离开屏幕top: -10000px
。
也许更多关于浏览器版本的规范,这不起作用会有所帮助? – rasata
它不适用于Firefox 3 – ptamzz
你使用哪个jQuery版本? – rasata