Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   jcrop для двух изображений одновременно (https://javascript.ru/forum/jquery/36363-jcrop-dlya-dvukh-izobrazhenijj-odnovremenno.html)

boichukvd 13.03.2013 12:39

jcrop для двух изображений одновременно
 
Здравствуйте.
Из этого куска кода каким-то образом передается параметр для функции updateInfo, либо это закладено у самом плагине, либо то что находится у function(){}:
............ 
............ 
............ 
 // initialize Jcrop 
            $('#'+phot+'preview').Jcrop({ 
                minSize: [250, 150], // min crop size 
                aspectRatio : 1.6666666666666666, // keep aspect ratio 1:1 
                bgFade: true, // use fade effect 
                bgOpacity: .3, // fade opacity 
                onChange: updateInfo, 
                onSelect: updateInfo, 
                onRelease: clearInfo 
            }, function(){ 

                // use the Jcrop API to get the real image size 
                var bounds = this.getBounds(); 
                boundx = bounds[0]; 
                bound = bounds[1]; 

                // Store the Jcrop API in the jcrop_api variable 
                jcrop_api = this; 
            });

А вот и сама функция updateInfo:
// update info by cropping (onChange and onSelect events handler) 
ffunction updateInfo(e) { 
    $('#'+phot+' #x1').val(e.x); 
    $('#'+phot+' #y1').val(e.y); 
    $('#'+phot+' #x2').val(e.x2); 
    $('#'+phot+' #y2').val(e.y2); 
    $('#'+phot+' #w').val(e.w); 
    $('#'+phot+' #h').val(e.h); 
};

Вопрос: как мне предать у функцию updateInfo параметр phot.
Принимать наверное так updateInfo(e,phot), но где дописать чтобы отправить?
// Делаю я это для того чтобы была возможность загружать одновременно два изображения и обрезать их. Полный пример если что: http://www.script-tutorials.com...

Maxim-bonart 05.11.2015 12:32

Можно выйти из ситуации так
 
var jcrop_api = [];

$(function(){
              $('.image-resize').each(function(index, element) {
                    var w = $(this).data('w');
                    var h = $(this).data('h');
                    var x1 = $(this).data('x1');
                    var x2 = $(this).data('x2');
                    var y1 = $(this).data('y1');
                    var y2 = $(this).data('y2');
                    var id = $(this).data('id');
      
            
                    var img = $(this).find('img');
                    
                    $(img).Jcrop({
                        keySupport: false,
                    }, function (){
                        var bounds = this.getBounds();
                        boundx = bounds[0];
                        bound = bounds[1];

                        jcrop_api[index] = this;
                    });
                });
});

my_func(){
   // Можно пробежать все фотки и запросить их координаты
   console.log(jcrop_api[0].tellSelect()); // первая фотка
}


Часовой пояс GMT +3, время: 05:23.