2
//generate toolbar
var $toolbar = $(".toolbar");
$.each(tools, function (i, tool) {
    $("<img>", tool).appendTo($toolbar);
});
var $tools = $toolbar.find("img");

//define drag and drop handlers
$toolbar.on("dragstart", "img", onDrag);
$(".canvas").on({
    dragenter: false,
    dragover: false,
    drop: onDrop
});

//handle commencement of drag
function onDrag(e) {
    $o = $(this).clone();
    var o = e.originalEvent;
    o.effectAllowed = "copy";
    os = { X: o.offsetX, Y: o.offsetY };
}

jQuery のドキュメントでは、3 番目のパラメーター.on()はデータであり、4.on()番目のパラメーターが存在する場合、4 番目のパラメーターはイベント ハンドラーであると記載されています。この場合onDragは 3 番目のパラメーターなので、データと見なす必要がありますか? これは、3 番目ではなく 4 番目のパラメーターとして宣言する必要があるイベント ハンドラーによく似ています。ここで説明をいただけますか?

4

1 に答える 1

2

角括弧付きのパラメーターはオプションであるため、パラメーターとパラメーターhandlerを省略した場合、a が 2 番目のパラメーターになる可能性があります。指定された最後のパラメーターが関数または関数参照であるかどうかを認識するのに十分スマートであり、それをハンドラーとして使用します。selectordata

于 2013-10-02T22:05:28.663 に答える