Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Событие img.onload срабатывает несколько раз (https://javascript.ru/forum/events/81407-sobytie-img-onload-srabatyvaet-neskolko-raz.html)

tovarz 21.11.2020 10:15

Событие img.onload срабатывает несколько раз
 
Здравствуйте. Есть input type="file" accept="image/*". При выборе картинки она отображается в img src="" id='preloadimg'. Если несколько раз подряд выбирать файл, то onload происходит тоже несколько раз и по моему коду несколько раз срабатывает alert. Как сделать, чтобы onload сработало только один раз?
Вот код:

<input type="file" name="image" accept="image/*" id="ifile"><br>
<img src="" alt="Image preview..." id='preloadimg'>

<script>
$('#ifile').on('change', function () {
    $('#preloadimg').on('load', function (e) { 
		if(this.naturalWidth < 200 || this.naturalHeight < 200){
			URL.revokeObjectURL($('#preloadimg').attr('src'));
			$('#ifile').val('');
			alert('Изображение должно быть не меньше 200px х 200px');
			return false;
		}
	});

	$('#preloadimg').attr('src', URL.createObjectURL(this.files[0]));
});
</script>

laimas 21.11.2020 11:04

Цитата:

Сообщение от tovarz
Если несколько раз подряд выбирать файл, то onload происходит тоже несколько раз

Так и должно быть. Что вы хотите - ограничится первым выбором, то есть другое изображение выбрать уже нельзя, или если выбрано тоже самое то ...?

рони 21.11.2020 11:11

tovarz,
строку 3 перенесите в строку 14.
строка 5 зачем?


Часовой пояс GMT +3, время: 13:06.