Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   SlideToggle (не могу разобрать) (https://javascript.ru/forum/jquery/79566-slidetoggle-ne-mogu-razobrat.html)

kirop 23.02.2020 05:13

SlideToggle (не могу разобрать)
 
Всем привет , у меня такой вопрос .
Есть блоки которые добавляются и удаляются по клику , а вот со сворачиванием проблемы , если я нажимаю на 1 блок , то сворачиваются все , а мне нужно чтобы свернулся тот к которому я обратился.
Точнее как правильно мне к нему обратиться ?

function slideTask(slide) {

slide.slideToggle();
}


$('body').on('click', '.cut_down', function () {

let slide = $(this).children('.add');

slideTask(slide);

//$('.disc').slideToggle();
});

рони 23.02.2020 08:26

kirop,
возможно так ...
function (event) {

let slide = $(event.target);

иначе

[html run]
... минимальный код страницы с вашей проблемой
[/html]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

kirop 25.02.2020 13:25

$(document).ready(function () {

    function addTask() {

        let name = $('input').val(),
            text = $('textarea').val();

        if (name.length !== 0 && text.length !== 0) {
            $('.list_txt').hide();

            $('.list').append(
                `<div class="addtask">
                    <div class = "task">${name}
                    <button class ="delete"></button>
                    <button class="cut_down"></button>
                    </div>
                    <div class ="disc">${text}</div>
                </div>`
            );
            name = $('input').val('');
            text = $('textarea').val('');
        } else {
            alert('Введите данные!');
        }
    }

    function deleteTask(item) {
        item.remove();
    }

    function slideTask(slide) {
        slide.slideToggle();
    }

    $('.button').on('click', addTask);


    $('body').on('click', '.cut_down', function () {

        let slide = $(this).parents.('.task').next();//


        slideTask(slide);

        //$('.disc').slideToggle();
    });

    $('body').on('click', '.delete', function (e) {
        e.preventDefault();

        let item = $(this).parents('.addtask');

        deleteTask(item);

        let tasks = $('.addtask');

        if (tasks.length == 0) {
            $('.list_txt').show();
        }
    });

});

мне подсказали что через next не подходит и нужно вытащить элементы через селектор при помощи parents и search методы

рони 25.02.2020 13:36

kirop,
:-?

рони 25.02.2020 14:07

kirop,
let slide = $(this).parent('.task').next();


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