无法使用jquery dragstop并在事件调用中调整大小停止

时间:2010-11-11 15:12:30

标签: jquery-ui jquery-ui-resizable

我有一个应用程序,我通过在画布上拖动来创建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可以拖动和调整大小,但停止功能中包含的代码将不起作用(即警报不起作用)。

如果有人能发现问题,我将非常感激。谢谢。

1 个答案:

答案 0 :(得分:0)

发现问题所在:我过分依赖$nr_zone,在任何事件被触发之前会增加;我的解决方案是将$nr_zone的值存储在元素的id中(类似$(zona).attr("id","zona_"+$nr_zone)},并将其在代码中的使用替换为$(zona).attr("id").split("_")[1]。如果有一个优雅的解决方案,我很乐意听到它