如题所示,在每行的后面有一个top按钮,点击置顶,由于有settimeout自刷新,并重新获取数据,所以这个置顶位置并不能保持,每次刷新之后就没有效果了
代码:
$(".top").click(function(){
var $tr = $(this).parents("tr");
$tr.fadeOut().fadeIn();
$("tbody").prepend($tr);
$(this).css({"color":"red","font-weight":"bold"});
});
其实这部分代码对解决问题没什么作用,主要还是想知道如何与后台交互 或者在前台影响全局变量,从而保持当前置顶位置
習慣沉默2017-06-26 10:56:48
得看看你这个置顶是永久性的还是一时性的!
如果是永久性的置顶,那你的数据肯定是存储在数据库里的,并且有个字段用来标识该条数据是否为置顶数据,绑定到前端的时候,通过标识来判断这条数据是否置顶,这个就完全不需要前端来考虑这个问题吧?你在前端只不过是把这部分数据展示而已。
如果你的置顶只是一时性的,你可以在每次请求ajax数据之前,获取到置顶数据行的某列数据作为标识(这 个由你自己来定,不过该列的值必须是唯一的),然后再去请求ajax数据,在绑定的时候,用你存储下来的标识跟请求到数据进行判断,相等的话就把改行数据设置为置顶。(感觉写这种置顶没多大意义, 因为这种置顶数据只有你自己能看的到,要是你把页面关闭了一样没用,毕竟不是永久性的)
代言2017-06-26 10:56:48
直接叫你们后台写个接口,当你点击置顶的时候,把这条数据的id传到后台,再让后台把它排到第一条数据返回给你,这样即使有settimeout你接收到的也是你置顶后的数据啦