Как создать список дел с помощью jQuery?
Опубликовано: 6 Января, 2022
Эта статья посвящена разработке списка дел с некоторыми основными функциями, такими как:
- Добавить задачу
- Удалить задачу
- Перечеркните выполненные задачи
Предпосылки:
Базовые знания Front-end разработки с использованием HTML, CSS, JS, jQuery и Bootstrap-3.
Шаги:
- Инициализируем макет:
- Добавьте текстовое поле ввода с кнопкой для добавления задач в основной список.
- Мы установим контейнер, содержащий вышеуказанное, как фиксированный на кнопке, используя некоторое свойство CSS position fixed.
- Теперь добавим контейнер, в который будут добавляться задачи.Ниже приведен код с объяснением вышеизложенного:
<!-- Initialize the layout -->
<!DOCTYPE html>
<
html
lang
=
"en"
>
<
head
>
<
meta
charset
=
"utf-8"
/>
<!-- Required CDN's -->
<
link
rel
=
"stylesheet"
href
=
<
script
src
=
</
script
>
<
script
src
=
</
script
>
integrity
=
"sha256-WpOohJOqMqqyKL9FccASB9O0KwACQJpFTUBLTYOVvVU="
crossorigin
=
"anonymous"
>
</
script
>
<
style
>
.container {
width: 90%;
height: auto;
}
.foot {
position: fixed;
left: 10%;
bottom: 0;
width: 80%;
text-align: center;
}
</
style
>
</
head
>
<
body
>
<
center
>
<
div
class
=
"foot"
>
<
div
class
=
"row"
>
<
div
class
=
"col-sm-1"
> </
div
>
<
div
class
=
"col-sm-10"
>
<!-- Input for tasks -->
<
div
class
=
"input-group"
>
<
input
type
=
"text"
class
=
"form-control"
placeholder
=
"Add Task"
id
=
"text"
>
<
div
class
=
"input-group-btn"
>
<
button
class
=
"btn btn-success"
>
<
i
class
=
"glyphicon glyphicon-plus"
>
</
i
></
button
>
</
div
>
</
div
>
<
br
>
<
br
>
</
div
>
</
div
>
</
div
>
<!-- Rest of the screen used for Adding Tasks -->
<
br
>
<
h2
class
=
"text text-success"
>My Tasks:</
h2
>
<
br
>
<
div
class
=
"container"
>
<!-- For adding tasks to the list -->
</
div
>
</
center
>
</
body
>
</
html
>
- Скрипт jQuery для добавления задач:
Теперь мы добавим код jQuery, чтобы мы могли добавлять задачи в наш список дел. Здесь мы использовали класс предупреждений Bootstrap для добавления контейнеров задач.- Нажатие на крестообразную кнопку справа от задачи приведет к окончательному удалению задачи.
(у предупреждения есть атрибут для этого, иначе нам бы также пришлось реализовать скрипт для удаления).
Ниже приведен код с объяснением вышеизложенного:
<!-- Adding tasks in the list -->
<!DOCTYPE html>
<
html
lang
=
"en"
>
<
head
>
<
meta
charset
=
"utf-8"
/>
<
link
rel
=
"stylesheet"
href
=
<
script
src
=
</
script
>
<
script
src
=
</
script
>
integrity
=
"sha256-WpOohJOqMqqyKL9FccASB9O0KwACQJpFTUBLTYOVvVU="
crossorigin
=
"anonymous"
></
script
>
<
style
>
.container {
width: 80%;
height: auto;
}
.foot {
position: fixed;
left: 10%;
bottom: 0;
width: 80%;
text-align: center;
}
</
style
>
</
head
>
<
body
>
<
center
>
<
div
class
=
"foot"
>
<
div
class
=
"row"
>
<
div
class
=
"col-sm-1"
> </
div
>
<
div
class
=
"col-sm-10"
>
<!-- Input for tasks -->
<
div
class
=
"input-group"
>
<
input
type
=
"text"
class
=
"form-control"
placeholder
=
"Add Task"
id
=
"text"
>
<
div
class
=
"input-group-btn"
>
<
button
class
=
"btn btn-success"
>
<
i
class
=
"glyphicon glyphicon-plus"
>
</
i
></
button
>
</
div
>
</
div
>
<
br
>
<
br
>
</
div
>
</
div
>
</
div
>
<
br
>
<
h2
class
=
"text text-success"
>My Tasks:</
h2
>
<
br
>
<
div
class
=
"container"
>
</
div
>
</
center
>
<
script
>
$(document).ready(function() {
$('.btn-success').click(function() {
// If something is written
if ($('#text').val().length != 0) {
//Store previous data
var x = $('.container').html();
// Add typed text in alert container
var y =
`<
div
class
=
"alert alert-success alert-dismissible fade in"
>
<
a
href
=
"#"
class
=
"close"
data-dismiss
=
"alert"
aria-label
=
"close"
>×</
a
>
` + $('#text').val() + `</
div
>`;
//Update
$('.container').html(y + x);
//Clear after addition
$('#text').val("");
} else alert("Enter some Text!");
});
});
</
script
>
</
body
>
</
html
>
- Нажатие на крестообразную кнопку справа от задачи приведет к окончательному удалению задачи.
- Скрипт для обозначения выполненных задач:
Наконец, мы добавим скрипт для реализации функции, согласно которой всякий раз, когда мы нажимаем на задачу, она будет пересекаться и, если это уже сделано, будет восстановлена обратно.
Для перехода к задаче воспользуемся свойством text-decoration-line: line-through в CSS.
Окончательное решение:
<!-- To-Do List implemented using jQuery --> <!DOCTYPE html> < html lang = "en" > < head > < meta charset = "utf-8" /> < link rel = "stylesheet" href = < script src = </ script > < script src = </ script > integrity = "sha256-WpOohJOqMqqyKL9FccASB9O0KwACQJpFTUBLTYOVvVU=" crossorigin = "anonymous" ></ script > < style > .container { width: 80%; height: auto; } .foot { position: fixed; left: 10%; bottom: 0; width: 80%; text-align: center; } </ style > </ head > < body > < center > < div class = "foot" > < div class = "row" > < div class = "col-sm-1" > </ div > < div class = "col-sm-10" > <!-- Input for tasks --> < div class = "input-group" > < input type = "text" class = "form-control" placeholder = "Add Task" id = "text" > < div class = "input-group-btn" > < button class = "btn btn-success" > < i class = "glyphicon glyphicon-plus" > </ i ></ button > </ div > </ div > < br > < br > </ div > </ div > </ div > < br > < h2 class = "text text-success" >My Tasks:</ h2 > < br > < div class = "container" > </ div > </ center > < script > $(document).ready(function() { $('.btn-success').click(function() { if ($('#text').val().length != 0) { var x = $('.container').html(); var y = `< div class = "alert alert-success alert-dismissible fade in" > < a href = "#" class = "close" data-dismiss = "alert" aria-label = "close" >×</ a > ` + $('#text').val() + `</ div >`; $('.container').html(y + x); $('#text').val(""); } else alert("Enter some Text!"); }); // When Task is clicked $(document).on('click', '.alert', function() { if ($(this).css('text-decoration-line') == "none") $(this).css('text-decoration-line', 'line-through'); else $(this).css('text-decoration-line', 'none'); }); }); </ script > </ body > </ html > |
Выход:
Перед добавлением задач:
После добавления задач: