2017-02-03 72 views
-2
不工作

我運行jQuery的下面這段代碼:觸發(「點擊」)在IE

<script type="text/javascript"> 
$(document).ready(function(){ 
    $('body').on('click', '.add-photo',function() { 


$("#images").append($('<input/>').attr('type', 'file').attr('name','uploads[]').attr('class', 'photo-upload-box').attr('value', '').trigger('click')); 


}); 
}); 
</script> 

HTML編碼

<input type="submit" class="add-photo"> 
<div id="images"> </div> 

我們知道這會爲每個文件創建新的輸入函數執行的時間。我所面對的是點擊事件不在IE中工作,但在Firefox中工作正常。

我也嘗試過觸發('點擊'),但它不能在IE中工作。任何人都可以建議我如何使它在Internet Explorer中工作?

+0

嘗試提供功能例子..因此,我們可以幫助你更容易 – andrepaulo

+0

@Saptal,請你展示樣品編碼嗎? – Tom

+0

你是說'.add-photo'的點擊不起作用,或者是文件輸入上的'.click()'? – Jacob

回答

0

看起來您在創建輸入元素時遇到了一些格式問題。這應該適合你。簡單地使用本地onclick也可以調用該函數,因爲您並不需要jQuery查看器。讓我知道你是否需要任何幫助:-)

編輯後的版本現在將適用於類.add-photo的任何事情。

$('body').on('click','.add-photo',function(){ 
 
    
 
    let input = $("<input>",{ 
 
    'type': 'file', 
 
    'name': 'uploads[]', 
 
    'class': 'photo-upload-box' 
 
    }); 
 
    
 
    $(input).click(); 
 
    
 
    $(input).change(function(){ 
 
    
 
    console.log(this.value); 
 
    
 
    }); 
 
    
 
});
.add-photo { 
 
    background-color: rgba(0,0,0,.15); 
 
    width: 100px; 
 
    text-align: center; 
 
    padding: 10px 0; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div class="add-photo">Add photo</div> 
 

 
<div id="output"></div>

+0

不知道爲什麼這會得到downvote ...這正是OP所要求的... –

+0

,因爲您建議使用onclick屬性和全局函數。它工作,但... –

+0

@KevinB你能解釋爲什麼我的解決方案不合適嗎?在我看來,該操作系統正在尋求一個可行的解決方案。但是我肯定會編輯這個帖子,讓它有一個全球性的觀察者,如果它讓你滿意的話...... –