перетащите и измените размер div в jQuery - PullRequest
0 голосов
/ 22 марта 2011

У меня есть два пробела, первый имеет серию артефактов (divs), а второй - рабочую область, в которой артефакты, перетаскиваемые из первого пространства, можно заново перетаскивать, отбрасывать, изменять размер и объединять между ними. В настоящее время я могу (работая над примером в Интернете) перетащить артефакты и поместить их в рабочую область, где я могу перетаскивать этот артефакт заново, но не могу изменить его размер. Честно говоря, я не пытался соединить артефакты, но мне было бы очень полезно, если бы вы сказали мне любую идею сделать это. Код, который у меня есть:

jQuery(function(){

    counter = 0;

    jQuery('.Artefacto').draggable({
        helper: 'clone',
        containment: '#areaDibujo',
        stop:function(ev, ui) {
            //al arrastrar el primer elemento
            var pos=jQuery(ui.helper).offset();
            objName = "#clonediv"+counter
            jQuery(objName).css({
                "left":pos.left,
                "top":pos.top
            });
            jQuery(objName).removeClass("Artefacto");
            //Para elementos existentes en el área
            jQuery(objName).draggable({
                containment: 'parent',
                stop:function(ev, ui) {
                    var pos=jQuery(ui.helper).offset();
                }
            });
        }
    });

    jQuery("#areaDibujo").droppable({
        drop: function(ev, ui) {
            if (ui.helper.attr('id').search(/Artefacto[0-9]+/) != -1){
                counter++;
                var element=jQuery(ui.draggable).clone();
                element.addClass("tempclass");
                jQuery(this).append(element);
                jQuery(".tempclass").attr("id","clonediv"+counter);
                jQuery("#clonediv"+counter).removeClass("tempclass");
                //Get the dynamically item id
                draggedNumber = ui.helper.attr('id').search(/Artefacto([0-9]+)/)
                itemDragged = "dragged" + RegExp.$1
                jQuery("#clonediv"+counter).addClass(itemDragged);
            }
        }
    });

});

И файл xhtml такой:

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:icecore="http://www.icefaces.org/icefaces/core"
      xmlns:ace="http://www.icefaces.org/icefaces/components"
      xmlns:ice="http://www.icesoft.com/icefaces/component"
      xml:lang="es" lang="es"
      >
    <h:head>
        <link rel="stylesheet" type="text/css" href="css/style.css" />
        <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
        <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.11/jquery-ui.min.js"></script>
        <title>Drag and Drop</title>
        <script type="text/javascript" src="javascript.js"></script>
        <!--<link rel="stylesheet" type="text/css" href="./xmlhttp/css/rime/rime.css"/>-->
    </h:head>

    <h:body>

        <div id="contenedor">
            <div id="panelArtefactos">
                <h3>Artefactos</h3>
                <div id="Artefacto">
                    <div id="Artefacto1" class="Artefacto" styleClass="ui-widget-content">Entidad</div>
                    <br/>
                    <div id="Artefacto1" class="Artefacto">Claves</div>
                    <br/>
                    <div id="Artefacto1" class="Artefacto">Atributos</div>
                </div>
            </div>

            <div id="areaDibujo">
                AREA DE DIBUJO...
            </div>
        </div>
    </h:body>
</html>

Буду очень признателен, если вы сможете мне помочь.

P.S .: Извините, если мой английский не верен: $ (позор мне)

1 Ответ

0 голосов
/ 29 мая 2012

Я использую тот же пример, что и вы, и я изменил его размер!

var element=$(ui.draggable).clone();
element.addClass("tempclass");
$(element).resizable({
  helper: "ui-resizable-helper"
});                 
$(this).append(element);

Я использую помощник, чтобы показать границы моего нового размера.
CSS прост:

.ui-resizable-helper {
  border: 2px dotted #00F;
}
...