当元素为“时如何在()上使用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新手,好像忽略了一些基础知识哈。谢谢