只能在页面重新加载时删除
can only delete when page reloads
我正在尝试使用html5 localstorage和一些JavaScript/jQuery做一个待办事项列表。我使用 ul 并存储它,它工作正常,我可以将 li 添加到其中,当我重新加载页面时它们会保留。但是当尝试执行删除功能时,我遇到了一些问题。下面的代码用于在我重新加载页面后删除 li。但是我不能删除刚刚添加的 li。
添加项目时,我喜欢这样:
$(add).click(function(e) {
if (addtext.value != ""){
$(listan).append("<li>" + addtext.value + "</li>"); //listan is my <ul>
localStorage.setItem('todo', listan.innerHTML);
addtext.value = "";
color(); //this adds some color to the li and also adds a delete-button
}
}
color()-函数:
function color(){
lin = document.getElementsByTagName('li');
for (var i = 0; i < lin.length;i++) {
if (!(lin[i].childNodes.length > 1)){
$(lin[i]).append("<input type='button' value='ta bort' class='tabort'></intput>"); //adds a deletebutton to all li's that doesnt have one
}}}
在删除项目时,我喜欢这样:
$('input[type="button"]').click(function() {
if (this.id != 'clear'){
$(this).parent().remove();
color();
localStorage.setItem('todo', listan.innerHTML);
}
});
有什么想法吗?
问题是您刚刚添加的新项目没有附加用于删除的单击处理程序。
您有两种处理方式,一种是使用 .live
而不是 .click
(http://api.jquery.com/live/)。另一种是将删除代码包装在一个函数中,并在添加新项后调用该函数。
第一个选项如下所示(未经测试):
$('input[type="button"]').live('click', function() {
if (this.id != 'clear'){
$(this).parent().remove();
color();
localStorage.setItem('todo', listan.innerHTML);
}
});
第二个选项看起来像
addDeleteHandler = function($item) {
$item.click(function() {
if (this.id != 'clear'){
$(this).parent().remove();
color();
localStorage.setItem('todo', listan.innerHTML);
}
});
}
// Modify the add handler
$(add).click(function(e) {
if (addtext.value != ""){
$newItem = $("<li>" + addtext.value + "</li>")
$(listan).append($newItem); //listan is my <ul>
addDeleteHandler($newItem); // Add delete handler
localStorage.setItem('todo', listan.innerHTML);
addtext.value = "";
color(); //this adds some color to the li and also adds a delete-button
}
}
// Need this to add delete handlers for items that are already in the list when page loads
addDeleteHandler($('input[type="button"]'))
相关文章:
- 如何删除视频's缩略图时's加载在JW Player's闪光模式
- Javascript图像数组预加载速度和从内存中删除
- 删除Ajax加载内容上的css类
- 在iframe加载后删除类
- 在页面加载时删除CSS模式Flash
- Ajax 加载 GIF 不会在成功时删除
- 异步加载特定的 CSS,并在加载时删除等待消息
- 删除加载javascript/css时的页面闪烁
- 如何在聚合物WebComponentsReady加载后删除预加载器
- 在页面加载时创建/设置活动的默认链接,但在单击其他链接时删除活动链接
- 删除在加载dom之后创建的动态元素
- removeChild,然后再次添加以前删除的Child以重新加载并清理它
- javascript页面加载检查是否存在具有特定类的span(在<tr>下),如果不存在,则删除整个<
- 如何从加载到javascript中的导出XML数据中删除不需要的空格
- 删除条目时Ajax不会重新加载表
- 删除ajax加载的内容和脚本
- 如何删除索引中加载的脚本文件中的重复项.html和业力
- 如何在 DOM 加载后使用 JavaScript 或 JQuery 从 href 属性中删除字符
- 当 AJAX 加载内容时,喜欢和删除按钮不起作用
- 删除不需要的javascript和css是否包括减轻网页加载时间