单击箭头后,事件监听器消失

时间:2017-11-29 19:04:55

标签: javascript jquery html css wordpress

我正在操纵一个wordpress插件(蜘蛛日历),以便在点击时改变一些颜色。首次加载页面时,检查器中会列出事件侦听器。当您点击" 2016"," 2018",左箭头或右箭头时,事件监听器将从"事件监听器"检查器的选项卡,虽然它仍显示在源代码中。

从一些研究中,我认为这可能会发生,因为元素被破坏了?每次日历执行时,如何重新加载事件侦听器,我该怎么办?或者是否有其他问题来源?

我的事件监听器:

if (window.location.href.indexOf("bounce-houses/") > -1) {
  var element = $('#afterbig1 table table table tr:nth-child(n+2) td');
  element.click(function() {
    if ($(this).is(":nth-last-child(2)") || $(this).is(":last-child") || $(this).is(":first-child")) {
      $(this).toggleClass("selectedWeekend");
      if ($(this).hasClass("calsun_days")) {
        $(this).toggleClass("sundays");
        $(this).toggleClass("calsun_days");
      } else if ($(this).hasClass("sundays")) {
        $(this).toggleClass("sundays");
        $(this).toggleClass("calsun_days");
      }
    } else if ($(this).is('td:nth-child(n+2):nth-child(-n+5)')) {
      $(this).toggleClass("selectedDays");
    }
  });
}
});

问题页面:(日历代码中有太多字符要添加)

johnabounceandplay.com/bounce-houses/combo-house

1 个答案:

答案 0 :(得分:0)

如果你的元素被破坏,娱乐后不会有任何听众重新附加,

快速解决方案是将click事件绑定到一个始终存在的元素,例如: .debug_macro 0x00000000 0x3a ..\archive.dlb(main.doj) .debug_macro 0x00000000 0x35 ..\archive.dlb(main.doj) .debug_macro 0x00000000 0x3a ..\archive.dlb(main.doj) .debug_macro 0x00000000 0x52 ..\archive.dlb(main.doj) .debug_macro 0x00000000 0x19 ..\archive.dlb(main.doj) .debug_macro 0x00000000 0x189 ..\archive.dlb(main.doj) .debug_macro 0x00000000 0x10 ..\archive.dlb(main.doj) .debug_macro 0x00000000 0x22 ..\archive.dlb(main.doj) .debug_macro 0x00000000 0x91 ..\archive.dlb(main.doj)

请尝试以下方法:

body