当元素为“时如何在()上使用jQuery”;准备好了吗;而不是收到一个事件?

当元素为“时如何在()上使用jQuery”;准备好了吗;而不是收到一个事件?,jquery,events,Jquery,Events,我正在尝试构建一个半透明的菜单(以及其他东西),代码如下所示: $(".hover-opaque").on({ load: function () { $(this).addClass("opacity02"); }, mouseenter: function() { $(this).removeClass("opacity02"); $(this).addClass(

我正在尝试构建一个半透明的菜单(以及其他东西),代码如下所示:

    $(".hover-opaque").on({
        load: function () {
            $(this).addClass("opacity02");
        },
        mouseenter: function() {
            $(this).removeClass("opacity02");
            $(this).addClass("opacity1");
        },
        mouseleave: function() {
            $(this).removeClass("opacity1");
            $(this).addClass("opacity02");
        }
    });
当它被加载(或“准备就绪”)时,addClass(“opacity02”)使其半透明,当鼠标进入时,addClass(“opacity1”)使其不透明,当鼠标离开时,再次执行相反的操作

到目前为止,mouseenter和mouseleave工作良好,但“加载”(或“准备就绪”)不起作用。 当然,我可以这样做:

    $(".hover-opaque").addClass("opacity02");
但我听说它不能处理Ajax生成的内容

那有什么问题

顺便说一下,我尝试将上述代码放入document.ready()和not中,但两者都不起作用

我检查了很多jquery.on()的示例,但它们都是关于处理“单击”、“鼠标指针”或其他事件的

感谢您的帮助。

正如@adeneo所说,“准备就绪”活动仅适用于文档。对DOM的任何操作都应该在文档准备好之后进行。因此,您的所有代码都应该驻留在
$(document.ready
(除非您的JavaScript是在HTML之后内联的,这是一种糟糕的做法)

然后可以将类添加到
。将鼠标悬停在不透明的
元素上。不需要单独的“准备”活动

例如:

$(function() { // shorthand for $(document).ready
  $(".hover-opaque").addClass("opacity02").on({
    //...your events...
  });
});

请注意,只有文档具有就绪处理程序,并且只有某些元素具有加载事件,主要是加载外部资源的元素。至于动态添加的元素,这也不是处理这些元素的方法。由于您是插入元素的人,您应该已经知道它们何时被插入并相应地执行操作,只有在极少数情况下才需要其他解决方案,而解决事件处理程序问题的方法是使用委托事件处理程序。是的,您有这一点。因为我是JS新手,好像忽略了一些基础知识哈。谢谢