Показать сообщение отдельно
  #1 (permalink)  
Старый 25.12.2011, 00:14
Rig Rig вне форума
Интересующийся
Отправить личное сообщение для Rig Посмотреть профиль Найти все сообщения от Rig
 
Регистрация: 21.12.2011
Сообщений: 10

insertBefore не всегда срабатывает.
Вот пример:
<html><head>
<script type="text/javascript"><!--
function addItem(parname) {
    var list = document.getElementById(parname);
    var ul   = list.parentNode;
    var newItem = list.cloneNode(1);
    newItem.setAttribute('id', 'NewId');
    if (list.nextSibling.nodeType == 3) {
        var nextli = list.nextSibling.nextSibling;
    } else {
        var nextli = list.nextSibling;
    }
    ul.insertBefore(newItem, nextli);
}
//--></script>
</head><body>
<ul id="prices">
<li id="kot1">
<label for="price">Primer</label>
<input type="text" class="cat" name="price" id="price" value="0.00" onChange="checkPrice(this.id)" />
<input type="button" class="addline" value=" + " onClick="addItem(this.parentNode.id);" />
</li>
</ul>
</body></html>


Все вроде работает, но проявился интересный казус:

1 шаг: Нажимаю на кнопку добавления строки, добавляется вторая строка.
2 шаг: Нажимаю на кнопку добавления у этой второй строки, ничего не происходит (???) .
3 шаг: Нажимаю на кнопку добавления у первой строки, добавляется третья строка. теперь можно нажимать на любую из кнопок добавления строки, все будет работать.

Вопрос: что происходит на втором шаге, почему не срабатывает?

Последний раз редактировалось Rig, 25.12.2011 в 00:17.
Ответить с цитированием