1. 程式人生 > >JS實現簡易版備忘錄

JS實現簡易版備忘錄

1、概述

實現像手機便籤一樣功能的簡易版備忘錄頁面,該備忘錄全部用JQuery提供的功能實現,非常簡單易懂。

2、功能介紹

(1)簡潔的頁面,主介面僅提供兩個按鈕用於新增和刪除記錄;

(2)新增完成的多條記錄,支援批量選擇刪除;

(3)每條記錄支援點選行內進行修改;

(4)支援任意操作步驟進行修改、新增、刪除功能;

3、實現原理

預先定義一個空的無序列表,

(1)新增記錄:利用JQuery的append();方法,在空的ul列表內新增記錄,並同時新增一個確定按鈕;

(2)修改記錄:ui下li標籤繫結點選事件,使用val();方法獲取內容並將其轉換為多行文字輸入框;

(3)刪除記錄:使用hasClass方法定義單選框,如果被選中則remove();移除列表;

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>簡易版備忘錄</title>
    <script type="text/javascript" src="js/jquery-3.3.1.min.js"></script>
    <link rel="stylesheet" type="text/css" href="css/簡易版備忘錄.css">
</head>
<body>
    <div class="aide">
        <button class="add">+</button>
        <h2>備忘錄</h2>
        <button class="delete">×</button>
        <hr>
        <ul></ul>

    </div>

    <script type="text/javascript">
        $(function(){
            $(".add").on("click",function(){
                /**
                 * 備忘錄內新增1條記錄;
                 */
                $("ul").append("<li><textarea></textarea><button class='sub'>確定</button></li>");//點選新增按鈕,在ul內新增一個多行輸入文字框和一個按鈕;
                $("ul").on("click" ,"li .sub",function(){
                    var text=$(this).parent().children("textarea").val();//獲取多行輸入文字框內的值;
                    $(this).parent().html("<div></div>"+"<p>"+text+"</p>");//將獲取到的輸入內容轉換為段落格式,同時在內容前新增一個單選圓圈;
                })

                /**
                 * 修改點選的記錄;
                 */
                $("ul").on("click","li p",function(){
                    var textarea=$(this).parent().children("p").val();//獲取段落標籤內的值;
                $(this).parent().html("<textarea>"+textarea+"</textarea><button class='sub'>確定</button>");//將獲取到的段落標籤內的值轉換為標籤文字,並同時新增一個確定按鈕;
                })
                $("ul").on("click","li div",function(){
                    if($(this).hasClass("on")){
                        $(this).removeClass("on");//如果單擊時單選被選中,則移除選中效果;
                    }else{
                        $(this).addClass("on");//否則新增選中效果;
                    }
                    $(".delete").on("click",function(){
                            $(".on").parent().remove();//刪除選中的記錄;
                        
                    })
        
                })
            })     
        })

    </script>
</body>
</html>