2015-08-30 3 views
0

У меня есть этот код:Javascript выполнить событие на клик

<input type="file" id="imgLoader"> 
<button type="button" class="btn btn-primary" id="add-img">Add</button> 

Я следовал этой Approch: How to upload an image to a canvas with Fabric.js?

document.getElementById('imgLoader').onchange = function handleImage(e) { 
var reader = new FileReader(); 
    reader.onload = function (event){ 
    var imgObj = new Image(); 
    imgObj.src = event.target.result; 
    imgObj.onload = function() { 
     var image = new fabric.Image(imgObj); 
     image.set({ 
      angle: 0, 
      padding: 10, 
      cornersize:10, 
      height:110, 
      width:110, 
     }); 
     canvas.centerObject(image); 
     canvas.add(image); 
     canvas.renderAll(); 
    } 
    } 
    reader.readAsDataURL(e.target.files[0]); 
} 

Можно ли выполнить это событие только после нажатия пользователя на кнопке?

+0

Вы хотите, скажем, предварительный просмотр изображения перед загрузкой, а затем решить, будет ли загружено изображение или нет? – nelek

+0

Нет, у меня этот html внутри модальный, поэтому должна быть кнопка, которую пользователь должен подтвердить, чтобы начать загрузку – dontHaveName

+0

Где находится html для кнопки подтверждения? –

ответ

0

Не имеет смысла, когда вы нажимаете кнопку, файл еще не выбран, поэтому его нельзя загрузить. Он просто запускает окно браузера файлов.

$('#imgLoader').on('click', function(){ 
 
    $('#results').html('I fired'); 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="file" id="imgLoader"> 
 
<pre id="results"></pre>

Если вы хотите загрузить файл в другой кнопки вы можете сделать это:

document.getElementById('button').onclick = function handleImage(e) { 
var reader = new FileReader(); 
    reader.onload = function (event){ 
    var imgObj = new Image(); 
    imgObj.src = event.target.result; 
    imgObj.onload = function() { 
     var image = new fabric.Image(imgObj); 
     image.set({ 
      angle: 0, 
      padding: 10, 
      cornersize:10, 
      height:110, 
      width:110, 
     }); 
     canvas.centerObject(image); 
     canvas.add(image); 
     canvas.renderAll(); 
    } 
    } 
    reader.readAsDataURL(document.getElementById('imgLoader').files[0]); 
} 

Просто проверьте, если файлы является массивом, и если [0] элемент действует.

+0

Это может быть, если OP означает другую кнопку. С первым он выбирает, что загрузить, и когда он выбрал файл, нажав кнопку подтверждения, начинается загрузка. Теперь он начинается с изменения без подтверждения –

+0

Ну это возможно. – MinusFour

+0

хорошо, я показываю этот контент внутри модального, так что это не хорошо, если он просто загружается, и пользователь не должен подтверждать загрузку и так далее. Если не будет выбран какой-либо файл, я добавлю туда некоторую проверку. Я просто спрашиваю, можно ли начать загрузку после нажатия кнопки. – dontHaveName

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