todolist(结合bootstrap布局和模态框)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>todolist</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="css/bootstrap.css">
<style>
#todolist .form-control {
display: inline-block;
width: 250px;
margin-right: 6px;
}
#todolist li {
list-style: none;
margin: 8px;
border: 1px solid #eee;
padding: 5px 15px
}
.rank {
width: 20px;
height: 20px;
color: #fff;
background-color: #0F0F0F;
display: inline-block;
line-height: 20px;
text-align: center;
margin-right: 8px;
margin-left: 10px;
border-radius: 50%;
}
.name {
display: inline-block;
margin-right: 10px;
}
.tl-update {
margin: 0 8px;
}
.update {
display: inline-block;
visibility: hidden;
}
#todolist h2 {
margin-bottom: 15px;
}
.add {
margin: 40px;
transition: all 1s;
padding: 20px;
box-shadow: 5px 0px 5px #eee, -5px 0 5px #eee,
0 5px 5px #eee, 0 -5px 5px #eee;
border: 1px solid #ccc;
border-radius: 6px;
background: linear-gradient(#fff, #eee);
}
.add .form-control {
display: inline-block;
width: 250px;
}
.add button {
margin-left: 10px;
}
</style>
</head>
<body>
<div id="todolist" class="col-md-9 col-md-offset-2">
<h2>todo-list
<button class="btn btn-group-lg btn-success insert pull-right">新增</button>
</h2>
<ul>
<li data-id="112">
<span class="rank">1</span>
<span class="name">名称</span>
<div class="update">
<input type="text" class="form-control ">
<button class="btn btn-info btn-sm save">保存</button>
<button class="btn btn-info btn-sm cancel">取消</button>
</div>
<button class="btn btn-primary pull-right tl-del">删除</button>
<button class="btn btn-primary pull-right tl-update">修改</button>
</li>
<li data-id="112">
<span class="rank">2</span>
<span class="name">名称</span>
<div class="update">
<input type="text" class="form-control ">
<button class="btn btn-info btn-sm save">保存</button>
<button class="btn btn-info btn-sm cancel">取消</button>
</div>
<button class="btn btn-primary pull-right tl-del">删除</button>
<button class="btn btn-primary pull-right tl-update">修改</button>
</li>
<li data-id="112">
<span class="rank">3</span>
<span class="name">名称</span>
<div class="update">
<input type="text" class="form-control ">
<button class="btn btn-info btn-sm save">保存</button>
<button class="btn btn-info btn-sm cancel">取消</button>
</div>
<button class="btn btn-primary pull-right tl-del">删除</button>
<button class="btn btn-primary pull-right tl-update">修改</button>
</li>
<li data-id="112">
<span class="rank">4</span>
<span class="name">名称</span>
<div class="update">
<input type="text" class="form-control ">
<button class="btn btn-info btn-sm save">保存</button>
<button class="btn btn-info btn-sm cancel">取消</button>
</div>
<button class="btn btn-primary pull-right tl-del">删除</button>
<button class="btn btn-primary pull-right tl-update">修改</button>
</li>
</ul>
<div class="add">
<span>请输入您要添加的内容:</span>
<input type="text" class="form-control">
<button class="btn btn-primary pull-right">取消</button>
<button class="btn btn-primary pull-right">增加</button>
</div>
</div>
<!-- 模态框(Modal) -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title" id="myModalLabel">你确认要删除吗</h4>
</div>
<div class="modal-body">删除了的话他就永远消失了的!!</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary delelte">确认删除</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal -->
</div>
<script src="js/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script>
$(function () {
var index;//暂存要删除的行的序号,全局变量
//点击修改按钮之后,显示修改的内容,在其中点击保存,可以保存修改,点击取消,可以取消修改。
//复杂的修改使用model模态框实现,实现方法同修改按钮。
//on,可以给javascript动态添加的html元素增加事件,如果用click增加事件,只能给网页中已有的html元素增加。
$("#todolist button:last").click(function(){
var text=$("#todolist input:last").val();//获得输入值
var N=$("#todolist ul>li").length+1;//;//序号
if(text!=""){
var row=`
<li data-id="112">
<span class="rank">${N}</span>
<span class="name">${text}</span>
<div class="update">
<input type="text" class="form-control ">
<button class="btn btn-info btn-sm save">保存</NOtton>
<button class="btn btn-info btn-sm cancel">取消</NOtton>
</div>
<button class="btn btn-primary pull-right tl-del">删除</NOtton>
<button class="btn btn-primary pull-right tl-update">修改</NOtton>
</li>
`;
$("#todolist ul").append(row);
$("#todolist input:last").val("").focus();
$("#todolist ul li:last .tl-update").on("click",function () {
$(this).prev().prev().css("visibility","visible").prev().hide();
});
// 删除
// on动态添加事件
$("#todolist .tl-del:last").on("click",function () {
index = $("#todolist .tl-del").index(this);//记录点击序号
// 打开模态框
$("#myModal").modal();
});
}
});
// update默认的增加
// $().on("click",function () {
$("#todolist li .tl-update").on("click",function(){
$(this).prev().prev().css("visibility","visible").prev().hide();
// $(this).siblings(".update").css("visibility",visible).prev().hide();
});
// // })
// 删除
// on动态添加事件
$("#todolist .tl-del").on("click",function () {
index = $("#todolist .tl-del").index(this);//记录点击序号
// 打开模态框
$("#myModal").modal();
});
// 模态框上的delete确认删除
$("#myModal .delelte").click(function () {
$("#todolist li").eq(index).remove();
$("#myModal").modal("hide");
paixu();//执行排序 序号
});
// 删除之后的排序 序号需要修改
function paixu() {
// var n =$("#todolist li").length;
var xuhao=1;
$("#todolist li").each(function (i,el) {//循环li(jQuery特有 for)
$(this).children(".rank").text(xuhao++);
console.log(xuhao);
})
}
})
</script>
</body>
</html>
todolist(2)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>todolist</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="css/bootstrap.css">
<style>
#todolist .form-control {
display: inline-block;
width: 250px;
margin-right: 6px;
}
#todolist li {
list-style: none;
margin: 8px;
border: 1px solid #eee;
padding: 5px 15px
}
.rank {
width: 20px;
height: 20px;
color: #fff;
background-color: #0F0F0F;
display: inline-block;
line-height: 20px;
text-align: center;
margin-right: 8px;
margin-left: 10px;
border-radius: 50%;
}
.name {
display: inline-block;
margin-right: 10px;
}
.tl-update {
margin: 0 8px;
}
.update {
display: inline-block;
visibility: hidden;
}
#todolist h2 {
margin-bottom: 15px;
}
.add {
margin: 40px;
transition: all 1s;
padding: 20px;
box-shadow: 5px 0px 5px #eee, -5px 0 5px #eee,
0 5px 5px #eee, 0 -5px 5px #eee;
border: 1px solid #ccc;
border-radius: 6px;
background: linear-gradient(#fff, #eee);
}
.add .form-control {
display: inline-block;
width: 250px;
}
.add button {
margin-left: 10px;
}
</style>
</head>
<body>
<div id="todolist" class="col-md-9 col-md-offset-2">
<h2>todo-list
<button class="btn btn-group-lg btn-success insert pull-right">新增</button>
</h2>
<ul>
<li data-id="112">
<span class="rank">1</span>
<span class="name">名称</span>
<div class="update">
<input type="text" class="form-control ">
<button class="btn btn-info btn-sm save">保存</button>
<button class="btn btn-info btn-sm cancel">取消</button>
</div>
<button class="btn btn-primary pull-right tl-del">删除</button>
<button class="btn btn-primary pull-right tl-update">修改</button>
</li>
<li data-id="112">
<span class="rank">2</span>
<span class="name">名称</span>
<div class="update">
<input type="text" class="form-control ">
<button class="btn btn-info btn-sm save">保存</button>
<button class="btn btn-info btn-sm cancel">取消</button>
</div>
<button class="btn btn-primary pull-right tl-del">删除</button>
<button class="btn btn-primary pull-right tl-update">修改</button>
</li>
<li data-id="112">
<span class="rank">3</span>
<span class="name">名称</span>
<div class="update">
<input type="text" class="form-control ">
<button class="btn btn-info btn-sm save">保存</button>
<button class="btn btn-info btn-sm cancel">取消</button>
</div>
<button class="btn btn-primary pull-right tl-del">删除</button>
<button class="btn btn-primary pull-right tl-update">修改</button>
</li>
<li data-id="112">
<span class="rank">4</span>
<span class="name">名称</span>
<div class="update">
<input type="text" class="form-control ">
<button class="btn btn-info btn-sm save">保存</button>
<button class="btn btn-info btn-sm cancel">取消</button>
</div>
<button class="btn btn-primary pull-right tl-del">删除</button>
<button class="btn btn-primary pull-right tl-update">修改</button>
</li>
</ul>
<div class="add">
<span>请输入您要添加的内容:</span>
<input type="text" class="form-control">
<button class="btn btn-primary pull-right">取消</button>
<button class="btn btn-primary pull-right">增加</button>
</div>
</div>
<!-- 模态框(Modal) -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title" id="myModalLabel">你确认要删除吗</h4>
</div>
<div class="modal-body">删除了的话他就永远消失了的!!</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary delelte">确认删除</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal -->
</div>
<script src="js/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script>
$(function () {
var index; //暂存要删除的行的序号,全局变量
//点击修改按钮之后,显示修改的内容,在其中点击保存,可以保存修改,点击取消,可以取消修改。
//复杂的修改使用model模态框实现,实现方法同修改按钮。
//on,可以给javascript动态添加的html元素增加事件,如果用click增加事件,只能给网页中已有的html元素增加。
$("#todolist button:last").click(function () {
var text = $("#todolist input:last").val();
var N = $("#todolist ul>li").length + 1;
if (text != "") {
var row =
`
<li data-id="112">
<span class="rank">${N}</span>
<span class="name">${text}</span>
<div class="update">
<input type="text" class="form-control ">
<button class="btn btn-info btn-sm save">保存</button>
<button class="btn btn-info btn-sm cancel">取消</button>
</div>
<button class="btn btn-primary pull-right tl-del">删除</button>
<button class="btn btn-primary pull-right tl-update">修改</button>
</li>
`;
$("#todolist ul").append(row);
$("#todolist input:last").val("").focus();
$("#todolist ul li:last .tl-update").on("click", update);
$("#todolist ul li:last .save").on("click", edit);
$("#todolist ul li:last .cancel").on("click", cancel);
$("#todolist ul li:last .tl-del").on("click", function () {
index = $("#todolist .tl-del").index(this);
$("#myModal").modal();
});
}
}); // end of add
//start of update
//on 动态增加添加点击事件
$("#todolist li .tl-update").on("click", update);
$("#todolist ul li .tl-del").on("click", function () {
index = $("#todolist .tl-del").index(this);
$("#myModal").modal();
});
$("#myModal .delelte").on("click", del);
$(".save").on("click", edit);
$(".cancel").on("click", cancel);
$(".add button:first").on("click", cancel);
$("#todolist button:first").click(function () {
$("#todolist button:last").click();
})
function update() {
$(this).prev().prev().css("visibility", "visible").prev().hide();
}
function del() {
$("#todolist li").eq(index).remove();
$("#myModal").modal("hide");
//sort
var n = 1;
$("#todolist li").each(function () {
$(this).children(".rank").text(n++);
})
}
function edit() {
$(this).parent().prev().text($(this).prev().val());
$(this).prev().val(null).focus();
$(this).parent().css("visibility", "hidden").prev().show();
}
function cancel() {
$(this).parent().children("input").val(null).focus();
}
})
</script>
</body>
</html>