Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Удаление элементов на странице (https://javascript.ru/forum/events/51811-udalenie-ehlementov-na-stranice.html)

feoalter7 20.11.2014 16:44

Удаление элементов на странице
 
Здравствуйте друзья программисты.
Задача проста, нужно удалить элементы по нажатию, пишу вот такой код.

general.event_handler('click', '.btn_add_time', function(e){ 
    var wrap = document.getElementById('time_wrapper'); //находим основной блок
    var elem = document.createElement('div'); //создаем дочерний элемент div
        
    elem.setAttribute("class", "time_list_on_edit"); //дочернему элементу добавляем класс
    
    elem.innerHTML = '<span>Отбытие: <input type="time" name="departure[]" value="" /></span>\
                      <span>Прибытие: <input type="time" name="arrival[]" value="" /></span>'; //добавляем контент

    var deletebtn = document.createElement('button'); //создаем элемент, по клику на который должен удаляться дочерний элемент elem
    
    deletebtn.prototype = {
        'deleteElem' : function(){ //записываем в прототип каждой кнопки функцию удаления
            wrap.removeChild(elem); //тут все понятно думаю, удаление непосредственно
        }
    }
    
    deletebtn.innerHTML = 'Удалить';
    elem.appendChild(deletebtn); //добавляем кнопку удаленияв дочерний блок elem
    
    general.on_event_handler('click', 'button', function(e){ //вешаем на кнопку удаления обработчик
        deletebtn.prototype.deleteElem(); //вызываем функцию удаления при нажатии
    });
    
    wrap.appendChild(elem); //добавляем элементы на страницу.
});


Если создать 2 таких дочерних элемента, и попытаться удалить один из них удалятся оба. Вопрос как сделать чтобы удалялся только тот к которому относится кнопка удаления, по которой как раз нажали.

Спасибо.

рони 20.11.2014 17:38

feoalter7,
сделайте макет ... и обязательно лезть в prototype ?

krutoy 20.11.2014 18:01

feoalter7,
В коде не разбирался, но одна ошибка точно есть: prototype назначается функции, а не объекту.

рони 20.11.2014 18:06

:cray: код рабочий и должен удалять только 1 элемент

danik.js 20.11.2014 18:31

krutoy, и че? это же твой стиль. Почему не нравится?

krutoy 20.11.2014 18:38

Цитата:

Сообщение от danik.js
krutoy, и че? это же твой стиль. Почему не нравится?

Какой нахуй стиль? Объект func.prototype===object.__proto__. Хуля толку, что он написал object.prototype={foo: bar}? Это все равно что object.foo={foo: bar}. Кто от него наследует? Где указано? какой смысл?

danik.js 20.11.2014 18:44

Цитата:

Сообщение от krutoy
Кто от него наследует? Где указано? какой смысл?

Так ведь работает же )

Ты так вобще onclick'и в методы прототипа приписываешь и тебя это не парило, пока я не подсказал )
А когда подсказал, ты че сделал? Добавил блядь регулярку для фильтрации числовых ключей ))) Где-нибудь на проекте тебя бы за такую хуйню стулом по башке ебнули.

Короче, ты не далеко ушел.

krutoy 20.11.2014 18:50

Цитата:

Сообщение от danik.js
в методы прототипа приписываешь и тебя это не парило, пока я не подсказал

Да я про это и без тебя знал. Просто на скорую руку сворганил. Да и это роль сыграет только в скорости одного прохода форин, так что, это вообще пустое.
Цитата:

Сообщение от danik.js
Так ведь работает же

Что работает? эта ветка кода не может работать, она не имеет ни малешйего смысла. Она может только "не мешать работать", не более того.

krutoy 20.11.2014 18:58

Цитата:

Сообщение от danik.js
Короче, ты не далеко ушел.

Сам факт этих нелепых мелких предъяв говорит лишь о том, что ты нахватался базвордов, а жс ты вообще не понимаешь. Таких секретуток щас в программировании большинство, да, это жестокая реальность. Но когда они пытаются рученки к стульям тянуть, обычно получают предварительно хуйца в жопу. Так что сиди на стуле ровно.

danik.js 20.11.2014 19:01

Цитата:

Сообщение от krutoy
эта ветка кода не может работать, она не имеет ни малешйего смысла

Ты туп? Он создал анонимную функцию. Записал ссылку на нее в удобный ему объект. Вызвал ее когда ему нужно. Ему так удобно, какие претензии?


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