2011-09-07 141 views
0

在处理输入类型= 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(); }); 

这似乎有些浏览器(所有的浏览器的新版本),但在一些老的浏览器,这是行不通的工作。

任何人都可以帮助我调整代码,使其在更多的浏览器版本上工作?

+0

也许更多关于浏览器版本的规范,这不起作用会有所帮助? – rasata

+0

它不适用于Firefox 3 – ptamzz

+0

你使用哪个jQuery版本? – rasata

回答

0

如果要引发元素事件,请使用jQuery命令trigger()

​​

0

你可能试图隐藏input#upload作为display=nonevisbilty:hidden。出于安全原因,这会在较旧的浏览器中打破点击事件。

尽量让#upload不隐藏。你可以让你的u-button高出z-indexposition:absolute,这样div可以覆盖#unload

或使您的卸载按钮position:absolute,并推动它离开屏幕top: -10000px