无限滚动加载数据问题
做移动端程序的时候,经常会遇到无限滚动的功能,通常实现无限滚动的方式是页面滚动到底部后出发一个ajax请求,后端返回数据然后动态追加DOM,但是如果DOM结构很复杂,追加的时候拼接HTML会很复杂,比如之前做过的一段程序,如下:
$.each(response.data, function(key, task){
var html = '
';
html += '
';
html += '
';
html += '
';
html += '
';
html += '
';
html += '';
html += task.user_nickname;
html += '';
html += '';
html += task.category_name
html += '';
html += '
';
html += '
';
html += task.city
html += '
';
html += '
';
html += '
';
html += ' ';
html += '
';
html += '';
html += '截止时间:' + task.deadline
html += '';
if (task.openid == openid) {
html += '';
html += '删除';
html += '';
}
if (task.is_expired == 1) {
html += '';
html += '已过期';
html += '';
}
html += '
';
html += '
';//
html += '
';
html += '
$('.task-container').append(html);
});
对于这种HTML结构封装的时候必须得非常小心,如果漏掉了某个标签,造成标签未闭合,很可能就造成整个页面样式错乱(自己都觉得这段代码太烂了)。
对于这种情况,大家有什么比较方便的方法么?
相关阅读:
如何判断电话是被本地挂断的还是被远端挂断的?
scrapy模拟登录时遇到的问题?
求好的移动端 react 组件插件,包括: datepicker, select
Gruntfile.js 配置好之后, 运行grunt命令, js语法错误为什么不提示, 只是提示文件修改了
一个很复杂的MYSQL排序实现
nodejs做websocket聊天的安全问题
C 的scanf数组奇怪问题??
项目的构架经验
这行input name value 代表了什么 如果是请求 怎么阻止
我该怎么写这个delete函数呢? 我现在写成这样了,但是只能删除页面的item,不能把删除的部分传给服务器
请教浏览器兼容问题
Json转化的时区问题
android使用?引用颜色资源,程序闪退?
一个react+webpack打包出错的初级问题。
SQL sever2014安装失败
php的null
为什么td 和 tr 标签不能用 v-for
MPI的MPI_Barrier()和MPI_Finalize()函数的正确使用方法?
这个根据滚动条位置自动翻页是怎么实现的?
zsh显示~问题