2015-12-21 2 views
1

Im, используя JavaScript, чтобы иметь возможность отображать загрузку изображений до файла, но Im имея эту ошибку ...Как передать данные события и идентификатор для функции яваскрипта

У меня есть функция Javascript

function imageIsLoaded(e) { 
    $('#image_preview_new').css("display", "block"); 
    var previewDiv = $('#previewing_new'); 
    previewDiv.attr('src', e.target.result); 
} 

и я вызываю функцию через другой скрипт, но мне нужно иметь возможность передавать как данные события, так и идентификатор в эту функцию, но он не работает ...

Это то, что я есть в настоящее время используется и работает ...

var reader = new FileReader(); 
reader.onload = imageIsLoaded; 
reader.readAsDataURL(this.files[0]); 

Это то, что я пытался, и он не работает. Если попытаться передать идентификатор и данные о событии (например, удостоверение личности) он говорит мне, что «е не определен» ...

var reader = new FileReader(); 
reader.onload = imageIsLoaded(e, id); 
reader.readAsDataURL(this.files[0]); 

function imageIsLoaded(e, id) { 
    $('#image_preview_new').css("display", "block"); 
    var previewDiv = $('#previewing_new'); 
    previewDiv.attr('src', e.target.result); 
} 

Как я могу получить данные о событии, а также идентификатор в эту функцию ,

Спасибо.

+0

что 'id'? вы не использовали его в функции. –

+0

http://stackoverflow.com/questions/16937223/pass-a-parameter-to-filereader-onload-event – Microfed

ответ

3

Используйте .change() событие, Function.prototype.bind()

function imageIsLoaded(id, e) { 
 
    // `id` : `"abc"` , `e` : `event` 
 
    console.log(id, e); 
 
    // do stuff with `id` 
 
    var previewDiv = $("#" + id); 
 
    previewDiv.attr("src", e.target.result); 
 
} 
 

 
$(":file").change(function() { 
 
    var reader = new FileReader(); 
 
    // set `this` to `reader` at first parameter to `.bind()` 
 
    // pass `id` : `"abc"` at second parameter `.bind()` , 
 
    // called at `imageIsLoaded` 
 
    reader.onload = imageIsLoaded.bind(reader, "abc"); 
 
    reader.readAsDataURL(this.files[0]); 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"> 
 
</script> 
 
<input type="file"> 
 
<br /> 
 
<img id="abc" />

+0

Спасибо, что отлично поработали! – LargeTuna

Смежные вопросы