我正在开发一个移动应用程序,我目前正在使用该on()
方法来实现滑动删除功能(我知道有一些库可以让我这样做,并且愿意接受你对优点的任何想法不同的选项)。我的代码如下所示:
var favArticles = $('#favoritesList li');
favArticles.each(function(i, li){
var id = $(li).attr('id');
$(li).on("swipeLeft",function(){
//console.log('SwipeLeft ' + id);
var html = $(li).html();
var button = '<div ><button onclick="favDelete(id, i)">Delete</a></div>';
$(li).html('<div style="position:relative;">' + html + button + '</div>');
});
});
我正在尝试管理一个可变的文章列表,因此每当我呈现收藏夹列表时,我都会抓取所有当前文章,并将滑动事件绑定到它们。如果滑动,则在文章顶部会出现一个按钮,当用户点击该按钮时,会运行一个函数,将滑动的 li 从列表中删除,并将其从存储的收藏夹中删除。
在 favDelete 中,我使用索引i
来删除()正确的li
. 这意味着每次删除元素时,我都需要重新创建具有更新值 i 的所有事件。
所以,我的问题是:如果我on()
再次调用,对于同一个 DOM 元素上的同一个事件,旧的绑定会被覆盖吗?或者我是否通过不断向on()
列表元素添加新操作来造成内存泄漏?
更新:是的,JQuery,而不是 Javascript。道歉。而且我知道我的 favDelete 调用不会像它显示的那样工作,我省略了为帖子删除了一堆引号以试图提高可读性。