
使用 preventDefault() 失效的根本原因在于事件监听器未在 DOM 加载完成后正确绑定——因表单是通过 AJAX 动态注入的,$("#create-submit").click(...) 在注入前执行,导致监听器未生效,表单按默认行为提交,触发 ? 插入 URL 并重载页面。
使用 `preventDefault()` 失效的根本原因在于事件监听器未在 DOM 加载完成后正确绑定——因表单是通过 AJAX 动态注入的,`$("#create-submit").click(...)` 在注入前执行,导致监听器未生效,表单按默认行为提交,触发 `?` 插入 URL 并重载页面。
你遇到的问题并非 preventDefault() 本身失效,而是事件委托缺失导致的典型动态内容绑定失败。你的 app.js 中调用了 initListener(),其中 $("#create-submit").click(...) 是在 $(document).ready() 时立即执行的——但此时 #create-submit 按钮尚未存在(它由 changeRoute() 异步加载的 HTML 注入到 #app 中),因此 jQuery 找不到该元素,监听器根本未被注册。当用户点击按钮时,浏览器执行










