问题描述:

在ajax请求后端时,在获取数据成功同时在dom元素中添加id或class,进行事件添加,但添加事件处于无效状态。

分析:

在网上查找资料同时,进行了本地测试,由于ajax是异步请求,ajax为同步请求时处于堵塞状态,恰巧相反ajax为异步请求时为不堵塞状态.阻塞状态时会阻止后面的js运行,非堵塞状态时将跳过ajax请求运行后面的js代码.

实测再两种状态下的运行情况。
我们在ajax请求后放置一个console.log()即可做出判断
同步情况下:
4-19-ajax.png

非同步情况下:
4-19-ajax-2.png

解决办法:

1.在ajax请求数据时后向dom中添加id或class属性时应该设置为同步状态(false).等待ajax请求成功后,进行事件的添加.
2.页面事件委托(同时性能方面也较好,推荐使用(公共父级元素添加一个事件).

最后修改:2021 年 05 月 30 日
如果觉得我的文章对你有用,请随意赞赏