2015-08-08 15 views
1

我正在使用FileApi請參閱Userpic + crop Demo)來裁剪圖像上傳之前。但只要我從電腦中選擇圖像文件,我得到了一個錯誤Jquery FileApi returing open不是函數

$(...).modal(...).open is not a function 

JS:

 <link href="~/Content/statics/main.css" rel="stylesheet" /> 
<link href="~/Content/jcrop/jquery.Jcrop.min.css" rel="stylesheet" /> 

<script src="~/Content/FileAPI/FileAPI.min.js"></script> 
<script src="~/Content/FileAPI/FileAPI.exif.js"></script> 

<script src="~/Content/jcrop/jquery.fileapi.js"></script> 
<script src="~/Content/jcrop/jquery.Jcrop.min.js"></script> 

<script src="~/Content/statics/jquery.modal.js"></script> 

<script> 
    $(document).ready(function() { 
     $('#userpic').fileapi({ 

      url: '@Url.Action("upl","Home")', 
      accept: 'image/*', 
      imageSize: { minWidth: 200, minHeight: 200 }, 
      elements: { 
       active: { show: '.js-upload', hide: '.js-browse' }, 
       preview: { 
        el: '.js-preview', 
        width: 200, 
        height: 200 
       }, 
       progress: '.js-progress' 
      }, 
      onSelect: function (evt, ui) { 
       var file = ui.files[0]; 
       if (!FileAPI.support.transform) { 
        alert('Your browser does not support Flash :('); 
       } 
       else if (file) { 
        debugger; 
        $('#popup').modal({ 
         closeOnEsc: true, 
         closeOnOverlayClick: false, 
         onOpen: function (overlay) { 
          $(overlay).on('click', '.js-upload', function() { 
           $.modal().close(); 
           $('#userpic').fileapi('upload'); 
          }); 
          $('.js-img', overlay).cropper({ 
           file: file, 
           bgColor: '#fff', 
           maxSize: [$(window).width() - 100, $(window).height() - 100], 
           minSize: [200, 200], 
           selection: '90%', 
           onSelect: function (coords) { 
            $('#userpic').fileapi('crop', file, coords); 
           } 
          }); 
         } 
        }).open(); 
       } 
      } 
     }); 
    }); 
</script> 

這是我的HTML

<div id="userpic" class="userpic"> 
    <div class="js-preview userpic__preview"></div> 
    <div class="btn btn-success js-fileapi-wrapper"> 
     <div class="js-browse"> 
      <span class="btn-txt">Choose</span> 
      <input type="file" name="filedata"> 
     </div> 
     <div class="js-upload" style="display: none;"> 
      <div class="progress progress-success"><div class="js-progress bar"></div></div> 
      <span class="btn-txt">Uploading</span> 
     </div> 
    </div> 
</div> 
+0

因此,檢查是什麼'open'? 'undefined'還是什麼? –

回答

1

您必須包括樣式文件( S)。

見jQuery的FileApi的下面的例子:

https://github.com/RubaXa/jquery.fileapi/blob/master/index.html

我看到有:

<script src="./FileAPI/FileAPI.min.js"></script> 
And more files..... And then: 
<script src="./statics/jquery.modal.js"></script> 
+0

似乎相關,但在這種情況下不應該'.modal()'返回一個錯誤? PS:我不知道這個插件,只是想知道 –

+0

@ A.Wolff $(...)。modal(...)。open不是一個函數。沒有必需的內容,模態是未定義的。在這種情況下,open()不是模態的函數。 – schellingerht

+0

但是,這不會拋出這個錯誤:'$(...)。模態(...)。打開不是一個函數' –