Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Люди добрые, помогите чайнику решить задание. (https://javascript.ru/forum/dom-window/25478-lyudi-dobrye-pomogite-chajjniku-reshit-zadanie.html)

Kostyk92 06.02.2012 18:19

Люди добрые, помогите чайнику решить задание.
 
Вывести на экран html-список с любыми данными. Добавить возможность удаления элементов этого html-списка двойным щелчком мыши. Вот все что я на данный момент накатал, и осталось самая малость - правильно прописать событие dblclick для каждого тэга LI.
Толи я совсем кретин, толи че, но я уже извелся весь, и так и сяк и на перекосяк пробовал. чувствую что разгадка совсем близко. Заранее презнателен...
<html>
<head>
<title>Удаление элемента списка двойным щелчком</title>
<script language="JavaScript">
<!-- hide

function spisok(k){
while(document.getElementById('list').childNodes.length) 
{document.getElementById('list').removeChild(document.getElementById('list').firstChild);};

for (var n=1; n<=k; n++)
 { var list = document.getElementById('list');
   var li = document.createElement('LI');
   li.dblclick =document.list.removeChild(li);
   li.innerHTML = "Элемент списка №"+n;
   list.appendChild(li);};
}
// -->
</script>
</head>
<body>
<form name="form1">
<input type="number" name="kolichestvo" min=0 value="10">
<input type="button" name="generate" value="Сгенерировать список" onClick="spisok

(document.form1.kolichestvo.value)">
</form>
<ul id="list">
</ul>
</body>
</html>

Kostyk92 06.02.2012 18:35

извиняюсь за несодержательный заголовок. С местными правилами еще не совсем ознакомился.

рони 06.02.2012 19:03

Kostyk92,
:) ам!
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251" />
<title>Удаление элемента списка двойным щелчком</title>
<script language="JavaScript">
function spisok(k) {
    for (var n = 1; n <= k; n++) {
        var list = document.getElementById('list');
        var li = document.createElement('LI');
        li.ondblclick = function () {
            list.removeChild(this);
        }
        li.innerHTML = "Элемент списка №" + n;
        list.appendChild(li);
    };
}
</script>
</head>
<body>
<form name="form1">
<input type="number" name="kolichestvo" min=0 value="10">
<input type="button" name="generate" value="Сгенерировать список" onclick="spisok(document.form1.kolichestvo.value)">
</form>
<ul id="list" >
</ul>
</body>
</html>

Kostyk92 06.02.2012 19:10

спасибо огромное. я тока на днях начал изучать этот язык. пока что путаюсь жестко очень

Kostyk92 06.02.2012 19:18

Спасибо тебе большое. А теперь объясни мне пожалуйста почему здесь нужно операторы события в function () {} брать? а то я так и не понял в чем была моя ошибка

рони 06.02.2012 19:38

Kostyk92,
li.dblclick =document.list.removeChild(li);

1 не dblclick а ondblclick
2 значением ondblclick является функция
3 document.list некорректно лучше document.getElementById('list')
4 removeChild(li); вопрос на что будет указывать li ?

по теме читать
Замыкания
События

Kostyk92 06.02.2012 20:21

рони,
ну я очень много вариантов перебирал. и this скобках ставил, и че тока не делал. сама главная моя ошибка была о того что я не знал что на событие можно только функцию использовать


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