jQuery .on 数据或事件处理程序?

标签 jquery

//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 文档说 .on() 的第三个参数是数据,.on() 的第四个参数是事件处理程序(如果第四个参数存在)。在这种情况下, onDrag 是第三个参数,所以它必须被视为数据?它看起来非常像一个事件处理程序,应该将其声明为第四个参数而不是第三个参数。我可以在这里得到一些解释吗?

最佳答案

带方括号的参数是可选的,因此如果省略selectordata 参数,handler 可能是第二个参数。它足够智能,可以识别给出的最后一个参数是函数还是函数引用,并将其用作处理程序。

关于jQuery .on 数据或事件处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19147544/

相关文章:

javascript - jQuery keydown 后访问属性

javascript - 有 getJSON 成功函数吗?

javascript - jquery插件Tokeninput的问题

javascript - jQuery 多个加/减计数器

javascript - 使用 JS 查找和比较顺序 div

javascript - 使用 jquery 检测变量变化

c# - 如何避免 'SamlAssertion.NotOnOrAfter condition is not satisfied'错误

javascript - 如何按顺序运行javascript语句

jquery - 到达具有共同祖 parent 作为当前节点的另一个节点的更好方法是什么?

Javascript - ERR_CONTENT_LENGTH_MISMATCH