Rails应用中Webpack定义的onClick点击事件不触发问题
解决Rails Webpack环境下按钮点击无反应的问题
嘿,我一眼就看到问题所在啦——你踩了个很容易忽略的小坑:原生DOM的点击事件属性是全小写的onclick,而不是你写的驼峰式onClick!
你现在的代码把点击逻辑绑定到了自定义的onClick属性上,浏览器根本不会把它识别为触发点击动作的事件,所以虽然控制台能看到这个属性存在,但点击按钮就是没反应。
修正方案1:改用原生小写事件属性
把代码里的onClick改成onclick就可以解决:
$(document).ready(()=> { document.getElementById('add-card').onclick = () => { $('.ui.modal').modal('show'); } });
修正方案2:用jQuery绑定事件(更推荐)
既然你已经在使用jQuery,直接用它的事件绑定方法更简洁,还能彻底避免这类大小写错误:
$(document).ready(()=> { $('#add-card').on('click', () => { $('.ui.modal').modal('show'); }); });
额外排查点(如果改完还是没反应)
- 确认jQuery和Semantic UI的JS文件已经通过Webpack正确加载:在浏览器控制台输入
$和$.fn.modal,要是返回undefined,说明资源加载出问题了。 - 检查模态框的HTML结构是否符合Semantic UI的要求,比如有没有正确的
ui modal类,内部的头部、内容、按钮区域是否完整。 - 如果按钮是动态渲染的(比如通过AJAX加载出来的),得用事件委托绑定到父元素或document上:
$(document).ready(()=> { $(document).on('click', '#add-card', () => { $('.ui.modal').modal('show'); }); });
内容的提问来源于stack exchange,提问作者Amin Shah Gilani
相关产品推荐
相关产品推荐

