Ошибка в плагине Cordova camera

#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;
  

………………………..