невозможно использовать jquery dragstop и изменить размер остановки внутри вызовов событий - PullRequest
0 голосов
/ 11 ноября 2010

У меня есть приложение, в котором я создаю div, перетаскивая холст.Мне нужно, чтобы эти div были перетаскиваемыми и изменяли размер.Вот моя функция:

function createDiv( $startX, $startY, $stopX, $stopY ) {
    if ($startX==$stopX || $startY==$stopY)
        return;

    var zona = $('<div class="zona"></div>');
    $(zona).css({position: "absolute", background: "#f81", overflow: "hidden", top: Math.min($startY,$stopY)+"px", left: Math.min($startX, $stopX)+"px",width: Math.abs($stopX-$startX)+"px", height: Math.abs($stopY-$startY)+"px" });
    $("#demo").append(zona);

    $(zona).draggable({
        stop: function(){
            alert("should store dimensions in a form here");
        }
    }).resizable({
        stop: function(){
            alert("should store dimensions in a form here");
        }
    });

    $nr_zone++;
}

Проблема в том, что, хотя созданный div будет перетаскиваться и изменять его размер, содержащийся код в функциях остановки не будет работать (т.е. предупреждения не будут работать).1004 *

Если кто-то может определить проблему, я буду очень благодарен.Спасибо.

1 Ответ

0 голосов
/ 11 ноября 2010

Выяснил, в чем проблема: я слишком сильно зависел от $nr_zone, который увеличивается до того, как произойдет какое-либо событие;Мое решение состоит в том, чтобы сохранить значение $nr_zone в идентификаторе элемента (например, $(zona).attr("id","zona_"+$nr_zone) и заменить его использование в коде на $(zona).attr("id").split("_")[1]. Если есть более элегантное решение, я бы хотел услышать его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...