Js 小白问个 pjax 的问题

2016-12-20 13:31:52 +08:00
 Spectre
pjax 刷新的区域带有<a onclick="">这种 onclick 事件,在第一次页面加载时 onclick 事件点击是有反应的(),
pjax 请求后 onclick 事件就不生效了,用了$(document).on()那种还是不行。
4176 次点击
所在节点    JavaScript
41 条回复
piapia123
2016-12-20 14:36:55 +08:00
pjax?
knightdf
2016-12-20 14:37:45 +08:00
小白问个问题:什么是 pjax?
JimmyCai
2016-12-20 14:38:15 +08:00
pjax 后要重新绑定事件
liujin834
2016-12-20 14:38:41 +08:00
用 pjax 还不如用 angular
Spectre
2016-12-20 15:01:09 +08:00
@JimmyCai 怎么重新绑啊 搜了下是$(document).on 那个写法 写了 pjax 后还是没触发事件
Spectre
2016-12-20 15:01:20 +08:00
@piapia123 嗯啊
Spectre
2016-12-20 15:01:47 +08:00
@liujin834 额 没用过额。
bombless
2016-12-20 15:08:23 +08:00
$.on 都不行那要不说明你写错了要不说明你浏览器环境没救了
po 主发出来这效果说不定表明 v2 有可以利用的 xss 漏洞 @Livid
Spectre
2016-12-20 15:26:52 +08:00
@bombless pjax 刷新第一次的区域有个 a 标签 里面有个 onclick 触发事件,后来我把 onclick 去掉了给 a 加了个 id 然后写$(document).on 那个 ,第一次进界面可以,后来 pjax 请求刷新那个区域后,就不能了。。填充的区域 a 也加了 id 的。
Livid
2016-12-20 15:36:53 +08:00
@bombless 1. V2EX 的 Markdown 允许一些安全标签
2. 楼主的原帖里有这样的安全标签
3. 楼主的原帖不应该用 Markdown 渲染,因为这样会导致其中的安全标签无法显示。现在改为 default 渲染之后应该可以表达原意
palmers
2016-12-20 15:37:49 +08:00
怎么 a 标签没有 href 属性呢?
Spectre
2016-12-20 15:39:15 +08:00
@Livid Markdown 渲染是啥 ``` ```吗 我直接手打的。。
Livid
2016-12-20 15:40:03 +08:00
@Spectre 如果你用的是 https://www.v2ex.com/new 这个地址发帖,那么帖子会默认用 Markdown 渲染。
alex321
2016-12-20 15:41:11 +08:00
很久之前我们前端教训我,要用 on 代理。。。
Spectre
2016-12-20 15:41:13 +08:00
@palmers you 啊 不过里面是 void 那种
Spectre
2016-12-20 15:42:19 +08:00
@Livid 额 好吧 不是很懂呢
bombless
2016-12-20 15:46:54 +08:00
@Spectre 首先确定一下,你知道 on 是怎么用的吧?
好比说你 DOM 结构是
<div id="a"><div id="b"></div></div>
然后你要用 ajax 刷新#b 节点
那你要$('#a').on('click', '#b', function() { /* ... */ })来代理
你确定是用类似这种方式吧?
Spectre
2016-12-20 15:51:44 +08:00
@bombless

<div id='pjax-container'>
<a href='' id='add'></a>
</div>

$(document).on('click','#add',function(){
});

这种 刷新区域是 pjax-container 也是这个区域会被一个准备好的区域替代,除了数据不一样其他都一样
刚开始进界面 on 事件有用, pjax 后 on 事件没用了
bombless
2016-12-20 16:49:48 +08:00
也许你那页面用了什么别的框架比如什么模板库来替换一大块 DOM
建议可以慢慢剥掉外层的无关代码,一边确定问题是否能重现
最后找到能重现的最少的代码,运气好的话还能找到 ajax 后能触发 click 的代码
然后对比这两套代码
还找不到问题可以把最少的可以重现的代码发出来,这样别人也能帮你查
Kilerd
2016-12-20 17:06:54 +08:00
@Spectre spectre.css 的作者?

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

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

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

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

© 2021 V2EX