我正在操纵一个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");
}
});
}
});
问题页面:(日历代码中有太多字符要添加)
答案 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