Js 小白问个 pjax 的问题

2016-12-20 13:31:52 +08:00
 Spectre
pjax 刷新的区域带有<a onclick="">这种 onclick 事件,在第一次页面加载时 onclick 事件点击是有反应的(),
pjax 请求后 onclick 事件就不生效了,用了$(document).on()那种还是不行。
4339 次点击
所在节点    JavaScript
41 条回复
kn007
2016-12-20 17:10:26 +08:00
一般我是重新 hook
lslqtz
2016-12-20 17:11:15 +08:00
@Livid 我还是喜欢 Default 。
发帖时也提供个和编辑一样的选项就好了,编辑有时限
xwartz
2016-12-20 17:12:22 +08:00
事件要重新绑定才行的
kiddyu
2016-12-20 17:20:03 +08:00
是不是 id 重复了?新页面是否有新 js 变量替换了$?
按说绑定到了 document 就不用重新绑定了,坐等看看 LZ 犯了啥低级错误- -
panlilu
2016-12-20 17:34:41 +08:00
pjax 有自己的事件,如果你用的是 $(document).ready(function(){...}) 这种肯定是只触发一次的。
你可以在 pjax 自己的事件上重新做你的绑定操作。详情见文档。
yimity
2016-12-20 18:11:51 +08:00
用事件委托,我觉得是这个问题。不要直接把事件绑定到你要替换的元素上。
Spectre
2016-12-20 18:23:05 +08:00
@Kilerd ...dota 幽鬼!
Spectre
2016-12-20 18:38:12 +08:00
@kiddyu 新页面和旧页面一样的 只是数据不一样了,这个 pajax 请求是个分页请求只是数据不同了而已
fy
2016-12-20 19:10:19 +08:00
现在还有人用 pjax ?还是换更新的技术吧
Spectre
2016-12-20 21:33:12 +08:00
@panlilu 看到了 pjax:complete 这个 不过我在这方法里写$(document).on 还是不起作用 汗
Roycom
2016-12-20 21:42:36 +08:00
隐式绑定事件 obj.on('click','dim',function(){})
Spectre
2016-12-20 22:34:04 +08:00
额 lz 可以了 重新绑定事件后 需要覆盖的<div>范围把我的 modal 覆盖了。。一直以为是没响应链接。
Spectre
2016-12-20 22:38:46 +08:00
好像都不要重新绑定事件。。马丹 div 区域没看好。
ragnaroks
2016-12-21 00:01:46 +08:00
一般在回调里面重新绑定子元素的事件,暂没有遇到过无效的情况
kiddyu
2016-12-21 00:07:03 +08:00
@Spectre 哈哈,果然是低级错误。绑定到 document 页面没有刷新一般是不需要重新绑定的
dracarysX
2016-12-21 00:13:08 +08:00
可以使用$(document).on('click', 'a', function(){})绑定。因为你 pjax 后 a 元素就未绑定了。
Spectre
2016-12-21 08:36:27 +08:00
@kiddyu HAHA 我直接在 a 链接里写 onclick 返回的 a 里也有 onclick 就好了
ghbjy1128
2016-12-21 09:09:51 +08:00
@fy 换新技术的话,怎么低成本的解决 SEO 问题?
jalen
2016-12-21 10:28:01 +08:00
@fy 什么新技术呢?
fy
2016-12-21 11:12:41 +08:00
@ghbjy1128 当然是服务端渲染啊……

@jalen 各路 MVVM 框架

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/328862

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX