Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Как сделать ограничение на количество элементов в блоке с .droppable (https://javascript.ru/forum/jquery/67724-kak-sdelat-ogranichenie-na-kolichestvo-ehlementov-v-bloke-s-droppable.html)

aslan2030 04.03.2017 22:47

Как сделать ограничение на количество элементов в блоке с .droppable
 
Вложений: 1
Как сделать ограничение на количество элементов в блоке с .droppable

Вот файл:

рони 05.03.2017 03:03

aslan2030, блоки аксессуаров нельзя скрывать, иначе надо делать копии картинок и алгоритм будет иной, перетащить одну картинку из блока на фото, кнопкой плюс увеличить, добавить из другого блока, для смены переместить картинку за пределы фото и выбрать другую. заменить полностью код ниже.
$(document).ready(function(){
    //МЕНЮ ВЫБОРА
    var a = $(".nav a"), d = $(".submenu").show();

    //МЕНЮ ВЫБОРА
    
    
    //ЗАГРУЗКА КАРТИНКИ
    
    var drop = $(".drop"), maxSize = 3000000; //300 Kb
    //проверка drag'n drop
    if (typeof(window.FileReader) == 'undefined') {
        drop.text('Не поддерживается браузером!');
        drop.addClass('error');
    }
    //проверка drag'n drop
    
    
    drop[0].ondragover = function(){
        drop.addClass("hover");
        return false;
    }
    
    drop[0].ondragleave = function(){
        drop.removeClass("hover");
        return false;
    }
    
    drop[0].ondrop = function(event) {
        event.preventDefault();
        drop.removeClass('hover');
        drop.addClass('ondrop');
        
        var file = event.dataTransfer.files[0];
        
        
        if (file.size > maxSize) {
            drop.text('Файл слишком большой!');
            drop.addClass('error');
            return false;
        }else if(file.type != "image/jpeg"){
            alert("only jpeg or jpg !!!");
            drop.removeClass("ondrop");
        }else{
//            $.ajax({
//                url: "getImg.php",
//                data: file,
//                success: function(file){
//                    imgField.html(file);
//                }
//            })
        }
    };
    //ЗАГРУЗКА КАРТИНКИ  
    
    //ВЫБОР АКСЕССУАРА 
    // Переменные
    var acs = $(".accessories"),
        imgField = $("#image"),
        plus = $("#plus"),
        minus = $("#minus"),
        acsW = acs.width(),
        acsH = acs.height();

    acs.draggable({
        zIndex: 100
    });
 var temp = acs.eq(0);
  plus.on("click", function() {
  var w = $(temp).width();
  $(temp).width(w+30);
})

 $(".picture").droppable({
    drop: function(event, ui) {
        var imgs = $(ui.draggable).siblings();
        var revert = imgs.filter(".in").length > 0;
        if (revert) {$(ui.draggable).not(".in").removeClass("in").draggable("option", "revert", true);}
        else {temp = ui.draggable;$(ui.draggable).addClass("in").draggable("option", "revert", "invalid") };
    },
    out: function(event, ui) {
        $(ui.draggable).removeClass("in").width(120).draggable("option", "revert", true);
        $(ui.draggable).data("uiDraggable").originalPosition = {
            top: 0,
            left: 0
        };
        var imgs = $(ui.draggable).siblings();
        var revert = imgs.filter(".in").length < 1;
        if (revert) imgs.not(".in").draggable("option", "revert", "invalid")
    }
});

    
})

Rise 10.03.2017 17:41

aslan2030, вот здесь сделано почти как я написал, тебе остается только нативный d&d добавить.


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