Javascript 如何在活动中使用

Javascript 如何在活动中使用,javascript,jquery,Javascript,Jquery,我正在尝试对事件使用。代码 $(".draggable").on("mouseover", function () { if (!$(this).data("init")) { $(this).data("init", true).draggable(); } }); 但是上面的代码不起作用。可拖动插件不适用于元素。现在,如果我用live替换on事件,那么它将开始工作。代码 $(".drag

我正在尝试对事件使用
。代码

$(".draggable").on("mouseover", function () {
                if (!$(this).data("init")) {
                    $(this).data("init", true).draggable();
                }
});
但是上面的代码不起作用。可拖动插件不适用于元素。现在,如果我用
live
替换
on
事件,那么它将开始工作。代码

$(".draggable").live("mouseover", function () {
                if (!$(this).data("init")) {
                    $(this).data("init", true).draggable();
                }
});

谁能解释一下我做错了什么吗?

这取决于您使用的jquery版本

$(selector).live(events, data, handler);                // jQuery 1.3+
$(document).delegate(selector, events, data, handler);  // jQuery 1.4.3+
$(document).on(events, selector, data, handler);        // jQuery 1.7+  
有关更多详细信息,请参阅此

如果
.live()
有效,则可能意味着代码运行时您正在操作的元素不存在

这意味着您在运行代码之前没有等待DOM就绪,或者您需要使用
上的
.on的委派版本

$(function() {
    $(document).on("mouseover", ".draggable", function () {
                    if (!$(this).data("init")) {
                        $(this).data("init", true).draggable();
                    }
    });
});
您应该用包含所有
.draggable
元素的最深嵌套容器的选择器替换
文档