最近在帮同学搭一个简单的个人博客,前端采用bootstrap.layui,.......各种没听过的东西,原谅我太辣鸡,
经过一顿的瞎分析,还是要使用一下ajax来发送请求和展示数据,没想到刚开使就遇到麻烦了
使用ajax发送请求后,动态创建元素并添加数据,这时问题来了,一些点击事件没了,完全失效了,也不报错,
一直以为是自己把这个结构搞烂了,于是就是一顿瞎改
一顿瞎改之后还是选择了放弃,最后在百度上找到了答案,这让我很开心
原理就是
ajax是异步操作。ajax和js的文件是同时加载。ajax还未返回js文件中获取的id或class,js已经加载完毕。导致js失效。
这是个坑啊!!!
$.ajax({
type:"get",
url:"",
contentType:"application/json; charset=UTF-8",
dataType:"json",
async:false, //异步
data:{
},
success:function(){},
error:function(){}
})
设置了async:false之后问题貌似解决了,但是.........
比如说我有一个添加功能,添加之后我要显示的数据就变多了一条,
但是他并不会立即显示,需要刷新之后才会显示,这让我有点头痛,希望有专业的大神帮我解决难题