我有一个应用程序,我通过在画布上拖动来创建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可以拖动和调整大小,但停止功能中包含的代码将不起作用(即警报不起作用)。
如果有人能发现问题,我将非常感激。谢谢。
答案 0 :(得分:0)
发现问题所在:我过分依赖$nr_zone
,在任何事件被触发之前会增加;我的解决方案是将$nr_zone
的值存储在元素的id中(类似$(zona).attr("id","zona_"+$nr_zone)
},并将其在代码中的使用替换为$(zona).attr("id").split("_")[1]
。如果有一个优雅的解决方案,我很乐意听到它