0

我有下面的代码与cordova-camera-plugin来浏览移动设备上的文件,当我在设备上运行它只能工作一次。在下次尝试时,当我选择一个文件时,对话框不会隐藏。科尔多瓦相机插件上的Bug

请帮我解释我的代码有什么问题。 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); 

    }); 
+0

我已经找到了答案我的问题, 问题是,该元素监听多个点击事件。所以我添加了一个名为cameraMode的变量。当 如果(kameraMode ===真) { kamera.getPicture(函数(的imageData){ kameraMode = FALSE; ................... .......... –

回答

0

我已经找到了我的问题的答案,

的问题是,元素听不止一个click事件。所以我添加了一个名为cameraMode的变量。当

if(kameraMode===true) 
{ 

    kamera.getPicture(function(imageData){ 
    kameraMode=false; 

.............................

相关问题