我是靠谱客的博主 年轻中心,最近开发中收集的这篇文章主要介绍TODOlist经典案例,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

要求:实现增加、删除、向上、向下操作

有一个TODOlist模板,代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>todolist</title>
	<style type="text/css">
		.list_con{
			width:600px;
			margin:50px auto 0;
		}
		.inputtxt{
			width:550px;
			height:30px;
			border:1px solid #ccc;
			padding:0px;
			text-indent:10px;			
		}
		.inputbtn{
			width:40px;
			height:32px;
			padding:0px;
			border:1px solid #ccc;
		}
		.list{
			margin:0;
			padding:0;
			list-style:none;
			margin-top:20px;
		}
		.list li{
			height:40px;
			line-height:40px;
			border-bottom:1px solid #ccc;
		}

		.list li span{
			float:left;
		}

		.list li a{
			float:right;
			text-decoration:none;
			margin:0 10px;
		}
	</style>
	<script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
	<script type="text/javascript">
	

	</script>	
</head>
<body>

	<div class="list_con">
	<h2>To do list</h2>
		<input type="text" name="" id="txt1" class="inputtxt">
		<input type="button" name="" value="增加" id="btn1" class="inputbtn">
		
		<ul id="list" class="list">

			<li><span>学习html</span><a href="javascript:;" class="up"> ↑ </a><a href="javascript:;" class="down"> ↓ </a><a href="javascript:;" class="del">删除</a></li>
			<li><span>学习css</span><a href="javascript:;" class="up"> ↑ </a><a href="javascript:;" class="down"> ↓ </a><a href="javascript:;" class="del">删除</a></li>
			<li><span>学习javascript</span><a href="javascript:;" class="up"> ↑ </a><a href="javascript:;" class="down"> ↓ </a><a href="javascript:;" class="del">删除</a></li>

		</ul>

	</div>
</body>
</html>

模板截图如下:

实现一、(只实现了新增和删除)没有使用冒泡事件的实现,需要在点击添加的地方在多谢一个删除函数,用 来删除增加的内容,还需要在外面写一个删除函数用来删除本来就有的内容;这样使得代码复杂了;且效率不高;

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>todolist</title>
	<style type="text/css">
		.list_con{
			width:600px;
			margin:50px auto 0;
		}
		.inputtxt{
			width:550px;
			height:30px;
			border:1px solid #ccc;
			padding:0px;
			text-indent:10px;			
		}
		.inputbtn{
			width:40px;
			height:32px;
			padding:0px;
			border:1px solid #ccc;
		}
		.list{
			margin:0;
			padding:0;
			list-style:none;
			margin-top:20px;
		}
		.list li{
			height:40px;
			line-height:40px;
			border-bottom:1px solid #ccc;
		}

		.list li span{
			float:left;
		}

		.list li a{
			float:right;
			text-decoration:none;
			margin:0 10px;
		}
	</style>
	<script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
	<script type="text/javascript">
		$(function(){
			var $txt = $('#txt1');
			var $btn = $('#btn1');
			var $lu = $('#list');

			$btn.click(function(){
				// 获得输入的值,这个时候已经保存了一份
				var sval  = $txt.val();
				// 清空输入框获得的值,再次点击增加,输入框已经为空了
				$txt.val('');
				// 为空判断
				if(sval==''){
					alert('请输入计划类容');
					return;
				}
				// 定义模板
				var $li = $('<li><span>'+ sval +'</span><a href="javascript:;" class="up"> ↑ </a><a href="javascript:;" class="down"> ↓ </a><a href="javascript:;" class="del">删除</a></li>');
				// 找到li中的del
				var $del = $li.find('.del');
				$del.click(function(){
					// 新增的删除走这里的代码
					$(this).parent().remove();
				});
				$lu.append($li);
			});
			// 本来就有的信息删除走这里的代码
			var $del = $('.del');
			$del.click(function(){
				$(this).parent().remove();
			});
		})
	</script>	
</head>
<body>

	<div class="list_con">
	<h2>To do list</h2>
		<input type="text" name="" id="txt1" class="inputtxt">
		<input type="button" name="" value="增加" id="btn1" class="inputbtn">
		
		<ul id="list" class="list">

			<li><span>学习html</span><a href="javascript:;" class="up"> ↑ </a><a href="javascript:;" class="down"> ↓ </a><a href="javascript:;" class="del">删除</a></li>
			<li><span>学习css</span><a href="javascript:;" class="up"> ↑ </a><a href="javascript:;" class="down"> ↓ </a><a href="javascript:;" class="del">删除</a></li>
			<li><span>学习javascript</span><a href="javascript:;" class="up"> ↑ </a><a href="javascript:;" class="down"> ↓ </a><a href="javascript:;" class="del">删除</a></li>

		</ul>

	</div>
</body>
</html>

 

实现二、可以使用事件委托的方式来实现,代码简单,效率高;

js代码如下:

$(function(){
			var $txt = $('#txt1');
			var $btn = $('#btn1');
			var $ul = $('#list');

			$btn.click(function(){
				// 获得输入的值,这个时候已经保存了一份
				var sval  = $txt.val();
				// 清空输入框获得的值,再次点击增加,输入框已经为空了
				$txt.val('');
				// 为空判断
				if(sval==''){
					alert('请输入计划类容');
					return;
				}
				// 定义模板
				var $li = $('<li><span>'+ sval +'</span><a href="javascript:;" class="up"> ↑ </a><a href="javascript:;" class="down"> ↓ </a><a href="javascript:;" class="del">删除</a></li>');
				// 增加模板,也就是增加一条内容到最后面一条
				$ul.append($li);
			});
            // 通过事件委托的方式来处理每个a标签的事件
            $
            $ul.delegate('a','click',function(){
                // 获取每个a标签的class属性值
                var sHandler = $(this).prop('class');
                // 如果属性值是‘del’,则删除当前标签的上级包含的所有内容,
                if(sHandler=='del'){
                    $(this).parent().remove()
                }
                // 如果属性值是‘up’
                if(sHandler=='up'){
                    // 判断up所在的父级,的上面的长度为0.这返回alert,然后结束,不在执行下面代码
                    if($(this).parent().prev().length==0){
                        alert('到顶了!');
                        return;
                    }
                    // 将up所在父级向上移动
                    $(this).parent().insertBefore($(this).parent().prev());
                }
                // 如果属性值是‘down’
                if(sHandler=='down'){
                    // 判断down所在的父级,的下一个元素的长度为0.这返回alert,然后结束,不在执行下面代码
                    if($(this).parent().next().length==0){
                        alert('到底了!');
                        return;
                    }
                    // 将down所在的父级元素向下移动
                    $(this).parent().insertAfter($(this).parent().next())
                }
            });
			
		})

 

最后

以上就是年轻中心为你收集整理的TODOlist经典案例的全部内容,希望文章能够帮你解决TODOlist经典案例所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部