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 にの値を格納することです(sth のよう$(zona).attr("id","zona_"+$nr_zone)に、コードで$(zona).attr("id").split("_")[1]の使用を に置き換えます。もっとエレガントな解決策があれば、ぜひ聞いてみたいです。

于 2010-11-11T15:31:20.800 に答える