jQuery-悬停和if语句

时间:2019-04-27 22:17:56

标签: jquery if-statement hover

仅在给定元素具有特定类的情况下,我才尝试悬停。

例如:

jQuery

$("#banner").hover(
  if ($(this).hasClass("bannerReady")) {
  function() {
    runOne();
  },
    function() {
      runTwo();
    }
}
);

但是这行不通。

我已经尝试过像这样使用它,并且可以使用,但是jQuery不会意识到在此同时更改了类名,并且它仍然可以使用:

if ($(this).hasClass("bannerReady")) {
  $("#banner").hover(

    function() {
      runOne();
    },
      function() {
        runTwo();
      }
  );
}

2 个答案:

答案 0 :(得分:0)

gb <- ggplot_build(p) g <- ggplot_gtable(gb) xs <- c(1, 5)/length(unique(reprex$var)) for(i in xs) { g <- gtable_add_grob(g, moveToGrob(i, 1), clip="off", t=7, l=5) g <- gtable_add_grob(g, lineToGrob(i, 0), clip="off", t=14, l=5) } grid.newpage() grid.draw(g) 预期会收到两个函数,因此您不能向其传递.hover()语句。像这样更改它:

if

答案 1 :(得分:0)

hover()只是用于一次性添加mouseentermouseleave处理程序的包装方法。

https://api.jquery.com/hover/

通过委派,我们可以将事件附加到页面上当前不存在的选择器。

https://learn.jquery.com/events/event-delegation/

$('body').on('mouseenter', '#banner.bannerReady', runOne);
$('body').on('mouseleave', '#banner.bannerReady', runTwo);

通过将事件附加到正文(始终存在)并将其委托给#banner.bannerReady选择器,您可以在页面加载的第二秒附加事件,并仅在横幅实际与选择器匹配时运行它们。

如果横幅广告中存在更具体的选择器,则可以使用该选择器代替body