BigCommerce Cornerstone主题分页后JavaScript无法执行问题
解决Cornerstone 6.7.0分页后JS点击事件失效的问题
问题根源在于Cornerstone的分页是通过AJAX动态加载分类内容的,你原先的写法只给页面初始加载时存在的.mm-button元素绑定了点击事件,分页后新渲染出来的同类型元素并没有被绑定事件,自然无法触发。
用事件委托就能搞定这个问题,把事件绑定到一个页面加载时就存在的静态父元素上(比如document或者分类页面的固定容器),借助事件冒泡来捕获动态元素的点击操作:
// 替换你原来的代码,改用事件委托写法 $(document).on('click', '.mm-button', (e) => { alert("clicked"); });
这个方法的核心逻辑是:不需要给每个.mm-button单独绑定事件,而是让静态父元素监听点击事件,当点击事件冒泡到父元素时,再判断触发事件的目标是否匹配.mm-button选择器。这样不管是页面初始加载的元素,还是分页后AJAX新增的元素,都能触发预设的点击逻辑。
如果追求更精准的绑定,可以把父元素换成分类页面中始终存在的容器(比如.category-content这类,根据你的主题DOM结构调整),性能会比绑定到document略优,效果完全一致。
内容的提问来源于stack exchange,提问作者Mitchell Adams
相关产品推荐
相关产品推荐

