1
piapia123 2016 年 12 月 20 日
pjax?
|
2
knightdf 2016 年 12 月 20 日
小白问个问题:什么是 pjax?
|
3
JimmyCai 2016 年 12 月 20 日 via Android
pjax 后要重新绑定事件
|
4
liujin834 2016 年 12 月 20 日
用 pjax 还不如用 angular
|
9
Spectre OP @bombless pjax 刷新第一次的区域有个 a 标签 里面有个 onclick 触发事件,后来我把 onclick 去掉了给 a 加了个 id 然后写$(document).on 那个 ,第一次进界面可以,后来 pjax 请求刷新那个区域后,就不能了。。填充的区域 a 也加了 id 的。
|
10
Livid MOD PRO @bombless 1. V2EX 的 Markdown 允许一些安全标签
2. 楼主的原帖里有这样的安全标签 3. 楼主的原帖不应该用 Markdown 渲染,因为这样会导致其中的安全标签无法显示。现在改为 default 渲染之后应该可以表达原意 |
11
palmers 2016 年 12 月 20 日
怎么 a 标签没有 href 属性呢?
|
13
Livid MOD PRO @Spectre 如果你用的是 https://www.v2ex.com/new 这个地址发帖,那么帖子会默认用 Markdown 渲染。
|
14
alex321 2016 年 12 月 20 日
很久之前我们前端教训我,要用 on 代理。。。
|
17
bombless 2016 年 12 月 20 日
@Spectre 首先确定一下,你知道 on 是怎么用的吧?
好比说你 DOM 结构是 <div id="a"><div id="b"></div></div> 然后你要用 ajax 刷新#b 节点 那你要$('#a').on('click', '#b', function() { /* ... */ })来代理 你确定是用类似这种方式吧? |
18
Spectre OP @bombless
<div id='pjax-container'> <a href='' id='add'></a> </div> $(document).on('click','#add',function(){ }); 这种 刷新区域是 pjax-container 也是这个区域会被一个准备好的区域替代,除了数据不一样其他都一样 刚开始进界面 on 事件有用, pjax 后 on 事件没用了 |
19
bombless 2016 年 12 月 20 日
也许你那页面用了什么别的框架比如什么模板库来替换一大块 DOM
建议可以慢慢剥掉外层的无关代码,一边确定问题是否能重现 最后找到能重现的最少的代码,运气好的话还能找到 ajax 后能触发 click 的代码 然后对比这两套代码 还找不到问题可以把最少的可以重现的代码发出来,这样别人也能帮你查 |
21
kn007 2016 年 12 月 20 日
一般我是重新 hook
|
23
xwartz 2016 年 12 月 20 日 via iPhone
事件要重新绑定才行的
|
24
kiddyu 2016 年 12 月 20 日
是不是 id 重复了?新页面是否有新 js 变量替换了$?
按说绑定到了 document 就不用重新绑定了,坐等看看 LZ 犯了啥低级错误- - |
25
panlilu 2016 年 12 月 20 日
pjax 有自己的事件,如果你用的是 $(document).ready(function(){...}) 这种肯定是只触发一次的。
你可以在 pjax 自己的事件上重新做你的绑定操作。详情见文档。 |
26
yimity 2016 年 12 月 20 日
用事件委托,我觉得是这个问题。不要直接把事件绑定到你要替换的元素上。
|
29
fy 2016 年 12 月 20 日
现在还有人用 pjax ?还是换更新的技术吧
|
31
Roycom 2016 年 12 月 20 日 via iPhone
隐式绑定事件 obj.on('click','dim',function(){})
|
32
Spectre OP 额 lz 可以了 重新绑定事件后 需要覆盖的<div>范围把我的 modal 覆盖了。。一直以为是没响应链接。
|
33
Spectre OP 好像都不要重新绑定事件。。马丹 div 区域没看好。
|
34
ragnaroks 2016 年 12 月 21 日
一般在回调里面重新绑定子元素的事件,暂没有遇到过无效的情况
|
36
dracarysX 2016 年 12 月 21 日
可以使用$(document).on('click', 'a', function(){})绑定。因为你 pjax 后 a 元素就未绑定了。
|