0

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

如果有人能发现问题,我将不胜感激。谢谢你。

4

1 回答 1

0

$nr_zone找出问题所在:在任何事件被触发之前,我过于依赖哪个会增加;我的解决方案是将 的值存储$nr_zone在元素的 id 中(喜欢$(zona).attr("id","zona_"+$nr_zone)并将其在代码中的使用替换为$(zona).attr("id").split("_")[1]. 如果有更优雅的解决方案,我很想听听。

于 2010-11-11T15:31:20.800 回答