正在查找Javascript/jQuery事件触发器
我有一个基于javascript的菜单生成器,它来自外部源。菜单功能通过绑定到特定ID的单击事件发生。。。相当标准 我要做的是在单击事件激发后对DOM执行另一个操作 我宁愿不要破解菜单包中的代码 我尝试附加我自己的点击处理程序-但是没有一种明显的方法确保我的点击处理程序在菜单系统的处理程序之后启动。我考虑的一种方法是基于事件添加/删除菜单系统的单击处理程序中出现的类。但是-我很快发现没有基于元素(我知道的)类更改的事件正在查找Javascript/jQuery事件触发器,javascript,Javascript,我有一个基于javascript的菜单生成器,它来自外部源。菜单功能通过绑定到特定ID的单击事件发生。。。相当标准 我要做的是在单击事件激发后对DOM执行另一个操作 我宁愿不要破解菜单包中的代码 我尝试附加我自己的点击处理程序-但是没有一种明显的方法确保我的点击处理程序在菜单系统的处理程序之后启动。我考虑的一种方法是基于事件添加/删除菜单系统的单击处理程序中出现的类。但是-我很快发现没有基于元素(我知道的)类更改的事件 有什么想法吗?(无需破解原始菜单系统的js)您可以使用javascirpt,
有什么想法吗?(无需破解原始菜单系统的js)您可以使用javascirpt,下面是一篇关于该主题的精彩文章: 或旧式的 如果我理解,(1)您可以添加自己的单击事件侦听器,(2)您希望在菜单元素上更改类名后执行代码 在这种情况下,您可以使用
setInterval
检查类是否已更改,如果已更改,则触发您的操作
诸如此类:
myOnClickFunction(){
var menu = document.querySelector('#MyMenuID');
var timer = setInterval(() => {
if(menu.classList.contains('TheClassNameYouWantToCheck')){
//Clear the interval
clearInterval(timer);
//Execute your actions here
}
}, 50);
//You can also add a maximum checking time
//after 5 seconds the function stop checking for changes
setTimeout(()=>clearInterval(timer), 5000);
}
这可能会有帮助(请查看答案的更新部分):感谢您的快速回复。我看到了,或者是类似的。我认为它不会起作用,因为实际上是导航系统改变了课堂。是的-如果我要更改类,我不需要另一个处理程序,我只需要在DOM上做额外的工作:)这两个听起来都是好主意。我对突变观察者很好奇。我确实看到了这一点,但当捕鼠器能够做到这一点时,这就像扔下了一颗1000磅的炸弹:)从来没有想过设置间隔。。。我可以在这里或其他地方使用它。