#javascript #mobile #cordova-plugins #phonegap-plugins #jquery-events
#javascript #Мобильный #cordova-плагины #phonegap-плагины #jquery-события
Вопрос:
У меня есть код с cordova-camera-plugin ниже для просмотра файла с мобильного устройства, когда я запускаю на устройстве, он работает только один раз. При следующей попытке, когда я выбираю файл, диалоговое окно не скрывается.
Пожалуйста, помогите мне, что не так с моим кодом.
HTML :
<div data-page="do-job" class="page navbar-fixed">
<div class="navbar">
<div class="navbar-inner">
<div class="left"><a href="index-content.html" class="link icon-only"><i class="icon icon-back"></i></a></div>
<div class="center"><a href="index-content.html" class="link">Kerjakan Tugas</a></div>
</div>
</div>
<div id="camerass">
<div class="page-content">
<form action="#" id="form">
<input type="hidden" name="attachment" id="post_image" value="">
<input type="hidden" name="job_id" id="job_id" value="">
<div class="list-block inputs-list">
<ul>
<li class="align-top">
<div class="item-content">
<div class="item-inner">
<div class="item-title label">Desc</div>
<div class="item-input">
<textarea class="resizable isi" name="isi" id="isi" rows="4" class='required'></textarea>
</div>
</div>
</div>
</li>
</ul>
<div class="image-list">
<div class="file-chooser">
<i class="fagambar2 fa fa-image"></i>
<i class="fagambar fa fa-plus"></i>
</div>
</div>
</div>
<div class="content-block"><a href="#" class="button button-fill kirim_pekerjaan">Send Job</a></div>
</form>
</div>
</div>
Javasript :
$(document).on('click','.file-chooser', function (e)
{
var ini=$(this);
ini.attr('disabled',true);
var html='';
var opt={
sourceType:0|2,
mediaType: Camera.MediaType.ALLMEDIA
};
navigator.camera.getPicture(function(imageData){
console.log(imageData);
if(isImage(imageData))
{
html ='<div class="image-added" data-src="' imageData '" ><img src="' imageData '" class="image-kirim-thumbnail"/></div>';
}else
{
html ='<div class="image-added" data-src="' imageData '"><i class="fa fa-video-camera"></i> </div>';
}
$('.image-list').prepend(html);
var win = function (r) {
console.log("Code = ");
console.log(r);
var resp=JSON.parse(r.response);
if(resp.STATUS=='SUCCESS')
{
dataUpload.push(resp.DESCRIPTION);
$('#post_image').val(dataUpload.toString());
}
ini.removeAttr('disabled');
}
var fail = function (error) {
console.log('error');
console.log(error);
}
var options = new FileUploadOptions();
options.fileKey = "file";
options.fileName = 'file_image.jpg';
options.httpMethod="POST";
if(getFileType(imageData)=='image')
{
options.mimeType = 'image/jpeg';
}else
{
options.mimeType = 'video/mp4';
}
var params = {};
params.value1 = "test";
params.value2 = "param";
options.params = params;
var ft = new FileTransfer();
var path_url=APIPath 'upload_file/uploadFile/' window.localStorage.getItem('token_id');
ft.upload(imageData, encodeURI(path_url), win, fail, options);
}, function(msg){
console.log("Error");
console.log(msg);
},opt);
});
Комментарии:
1. Я нашел ответ на свою проблему, проблема в том, что элемент прослушивает более одного события щелчка. Итак, я добавляю переменную с именем cameraMode. Когда, если(kameraMode===true) { kamera.getPicture(функция(ImageData){kameraMode=false; ………………………..
Ответ №1:
Я нашел ответ на свою проблему,
Проблема в том, что элемент прослушивает более одного события щелчка. Итак, я добавляю переменную с именем cameraMode. Когда
if(kameraMode===true)
{
kamera.getPicture(function(imageData){
kameraMode=false;
………………………..