Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   (jQuery, HTML) Как генерировать id для каждой новой кнопки? (https://javascript.ru/forum/dom-window/49520-jquery-html-kak-generirovat-id-dlya-kazhdojj-novojj-knopki.html)

skrudjmakdak 20.08.2014 16:52

<!DOCTYPE html>
<html>
<head>
<meta charset = "utf-8">
<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<link rel = "stylesheet" href="style.css">


<style>
div, h1{
background-color: #cdf;
text-align: center;
}
#loginblock{
text-align: left;
}
#addtodolist{
color: #555;
}
</style>



<script>
$(document).ready(function () {
    $('.taskbutton').click(function () {
		var form = $(this).parents('.form');
        var taskName = $(form).find('input[name=newTaskName]').val();

        $(form).find('.taskList').append('<div>data: '+taskName+'</div>');
		/*
		дальше пробуй сама ;) если что, спрашивай
		*/
    });
	
    /* тут тоже доделать ;)
	$(document).on('click', '.task', function () {
        $(this).hide('slow', function () {
            $this.remove();
        });
    });*/
	
	$(".addlist").click(function(){
	$(this).parent().clone(true, true).appendTo("body", false);
  });
	
});
</script>

</head>
<body>

<header>
     <h1>Simple todo list</h1>
</header>

<div class="form">
<div class="submitForm">
    <form name="TaskForm">
        <input type="text" name="newTaskName" class="taskinput" value="" placeholder="Enter your task here" required
        />
    </form>
    <div class="taskbutton">Add Task</div>
</div>
<div class="tasksWrapper">
     <h2 class="toDoHeader" contenteditable="true">Project name</h2>

    <ul class="taskList"></ul>
</div>
<input class="addlist" type = "button" value="add todo list">
</div>


</body>
</html>

Blondinka 21.08.2014 11:10

Цитата:

Сообщение от Rise (Сообщение 326696)
А в строках 59, 65, 67, 70 ты не видишь id?

В строке 59 id формы. Формы будут содержать разную информацию, потому тут id.
В строке 65 id для каждой кнопки "Add Task", если я заменю id на class, то новый таск в главном пректе будет добавляться ко всем клонам. Та же ситуация и со строкой 70.

Blondinka 21.08.2014 11:16

Skrudjmakdak, большое спасибо. Работает.

skrudjmakdak 21.08.2014 11:21

айдишники там нафик не нужны)) достаточно на классах реализовать

т.е. у тебя происходит событие на кнопке. ты поднимаешься от этой кнопке до div:
<div class="form">
с помощью метода parents(/*selector*/)
а от него начинаешь искать нужные тебе дочерние элементы используя метод find(/*selector*/)

Blondinka 21.08.2014 11:27

Цитата:

Сообщение от ksa (Сообщение 326697)
Встречный вопрос - зачем тебе вообще ИД для тех "кнопок"?

Потому что генерация нового id кнопки "Add task", показалась мне наиболее простым и очевидным решением.

Blondinka 21.08.2014 11:34

Цитата:

Сообщение от skrudjmakdak (Сообщение 326814)
айдишники там нафик не нужны)) достаточно на классах реализовать

т.е. у тебя происходит событие на кнопке. ты поднимаешься от этой кнопке до div:
<div class="form">
с помощью метода parents(/*selector*/)
а от него начинаешь искать нужные тебе дочерние элементы используя метод find(/*selector*/)

Спасибо.


Часовой пояс GMT +3, время: 04:38.