$(document).ready(function(){
var imagesCount = 0;
var maxImages = 6;
var imagesList = {};
$(function () {
var $image = $('#image');
$('#modal').on('shown.bs.modal', function () {
$('.controls').hide();
$('.progress').hide();
$image.cropper({
built: function () {
}
});
}).on('hidden.bs.modal', function () {
$('#submit-avatar-button').attr('disabled', 'true');
$image.attr('src', '');
$image.cropper('destroy');
});
$image.on('load', function(){
$image.cropper({
aspectRatio: 1,
crop: function(data){
var d = $image.cropper('getData');
d.filename = $image.attr('src');
$('#avatar-data').val(JSON.stringify(d));
},
dragMode: 'crop',
autoCrop: true,
autoCropArea: 1,
movable: false,
scalable: false,
zoomable: false,
toggleDragModeOnDblclick: false,
background: false,
viewMode: 0,
minCropBoxWidth: 100,
minCropBoxHeight: 100
});
$('#submit-avatar-button').removeAttr('disabled');
});
$('.r_left').on('click', function(){
$image.cropper('rotate', -90);
});
$('.r_right').on('click', function(){
$image.cropper('rotate', 90);
});
$('#avatar-file').bind('change', function(){
var data = new FormData();
var error = '';
jQuery.each($('#avatar-file')[0].files, function(i, file) {
if(file.name.length < 1) {
error = error + ' Файл имеет неправильный размер! ';
}
data.append('file-'+i, file);
});
$.ajax({
url: '/modules/upload_resize.php',
data: data,
cache: false,
contentType: false,
processData: false,
type: 'POST',error: function (xhr, ajaxOptions, thrownError) {
// alert(xhr.responseText);
// alert(thrownError);
},
xhr: function () {
var xhr = $.ajaxSettings.xhr();
xhr.upload.addEventListener("progress", function (evt) {
if (evt.lengthComputable) {
var pB = $('.progress-bar'), percentComplete = evt.loaded / evt.total, progLabel = Math.round(percentComplete * 100) + "%";
pB.attr('style', 'width: '+progLabel);
pB.text(progLabel);
}
}, false);
return xhr;
},
beforeSend: function () {
$('.progress').show();
$('.controls').hide();
},
complete: function () {
$('.progress-bar').text('Готово.');
$('.progress').delay(2000).fadeOut(500);
$('.controls').show();
},
success: function(data){
$image.cropper('destroy');
$image.attr('src', data);
}
});
});
$('#submit-avatar-button').on('click', function (){
var imageList = $('#image_selection'), selectImage = imageList.children('#select');
var data = $('#avatar-data').attr('value');
$.ajax({
url: '/modules/addavatar.php',
data: {'avatar-data':data},
type: 'POST',
error: function(xhr, ajaxOptions, thrownError){
// alert(xhr.responseText);
// alert(thrownError);
},
success: function(data){
data = JSON.parse(data);
var n = $('<li id="'+data.filename+'"></li>').insertBefore(selectImage);
n.append('<img width="50" src="data:image/jpeg;base64,'+data.mini+'" />');
imagesList[data.filename] = true;
$('<button type="button" class="btn btn-danger pull-right">Удалить</button>').appendTo(n)
.on('click', function(){
imagesList[n.attr('id')] = false;
n.remove();
imagesCount--;
if (imagesCount > 0){
$('#sendimages').removeAttr('disabled');
} else {$('#sendimages').attr('disabled', true);}
$('#image-selection-button').show();
});
imagesCount++;
if (imagesCount>=maxImages){
$('#image-selection-button').hide();
}
if (imagesCount > 0){
$('#sendimages').removeAttr('disabled');
} else {$('#sendimages').attr('disabled', true);}
$('button[data-dismiss="modal"]').click();
}
});
});
$('#sendimages').on('click', function (){
$('form#hidden').children('input[type="hidden"]').attr('value', JSON.stringify(imagesList));
$('form#hidden').children('input[type="submit"]').click();
});
});
});
function selectImage(){
$('#avatar-file').click();
}
http://jsonlint.com/ Ошибку показывает:
Error: Parse error on line 1:
$(document).ready(fu
^
Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '[', got 'undefined'
, а как ее исправить не могу допереть. Главное на реальном хосте работает все.