2011-09-07 179 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