jquery事件绑定无效
项目中有一个需求用到了点击事件绑定,但它始终无法生效,我的写法如下:
$("button[name='xxx']").off('click').on('click', function() {}
由于对jquery不太熟悉,一开始我以为是自己的写法出了问题,后来询问过大佬才得知其实是逻辑出了问题。
该部分原先分为三大模块,其中第二模块又内含十几个小模块,即:有父子构成关系。
所以初始化点击事件其实是初始在了父一模块,当切换下一页进入父二模块时,整个页面又重新渲染了一遍,导致未初始化,点击事件无效。
最终的解决方式是将初始化写在加载父二模块时的地方,确保整个子模块都可以使用。
排查问题的思路:
1. 梳理页面逻辑,明确功能函数应该在什么时候触发和初始化(如:该功能初始化为模块加载时);
2. 找到所需模块(父二)加载的大概位置,以便后续进行逻辑编写;
3. 若不清楚具体位置,可以用debugger、console.log、alert进行查找(本次查找使用的是alert)。