2012-11-27 154 views
3

試圖隱藏輸入文件,所以我可以風格它所有的瀏覽器,並想用js火文件上傳對話框打開輸入文件對話框

我下印象中.fireEvent(eventType)在MooTools是相同.trigger(eventType) jQuery中

的jQuery:http://jsfiddle.net/KnqFj/1/

$('#trig_file').click(function(){ 
    console.log('click'); 
    $('#file').trigger('click'); 
}); 

的mootools:http://jsfiddle.net/X6mqR/7/

$('trig_file').addEvent('click', function(){ 
    console.log('click'); 
    $('file').fireEvent('click'); 
});​​ 

,但它似乎並沒有被同

任何幫助表示讚賞

+0

odd:http://jsfiddle.net/X6mqR/15/它似乎在'#file'上觸發了click事件,但不是與它關聯的選擇文件操作。 – crowjonah

+0

只是有點玩。看起來好像mootools .fireEvent只觸發由mootools附加的addEvent事件處理程序,即不是本地瀏覽器事件。只是出於興趣$('文件'),點擊() - 似乎很好地工作。我不太瞭解mootools是否可以告訴你這是否可行? – OJay

+0

奇怪我知道,只是看着其他帖子,但它引發所有其他事件很好 – Benn

回答

4

只是爲了大家的參考,這可以以樣式瀏覽按鈕根據自己的喜好來使用。您可以完全隱藏輸入文件並在任何元素上觸發事件。

的jQuery:http://jsfiddle.net/g9sry/3/

$('#trig_file').click(function(){ 
    console.log('click'); 
    $('#file').trigger('click'); 
});​ 

的mootools:http://jsfiddle.net/X6mqR/17/

$('trig_file').addEvent('click', function(){ 
    console.log('click'); 
    $('file').click(); 
});​ 

我測試了, FF IE7和向上 歌劇 Safari瀏覽器 鉻 ,但我們仍然沒有找出原因是它的fireEvent不像觸發器jQuery

+0

不適用於safari v5(win) –

+0

$('file')。click(); –