allishappy
@allishappy

Почему неправильно определяется элемент $(this)?

function drawFunctions() { //создание всплывающего меню
    
    $('.parent').on('contextmenu', function(e) {
        $('.functions-menu').detach();
        var top=e.pageY-$('#listFile').offset().top,
            left=e.pageX-$(this).offset().left + 10,
            element=$(this);
            

        $(this).append('<ul class="functions-menu"><li class="functions-menu-buttons">Копировать</li><li class="functions-menu-buttons">Вырезать</li><li class="functions-menu-buttons" id="delete">Удалить</li><li class="functions-menu-buttons" id="rename">Переименовать</li></ul>');
        $('.functions-menu').css({
            'position': 'absolute',
            'top': top,
            'left': left
        });
        
        $(document).on('click', function() {
            $('.functions-menu').detach();
        })
        
        
        console.log('click');
        deleteFile(element);
        
    return false;
    });
};

function deleteFile(element) {
    $(document).on('click', 'li#delete', function() { //удаление файла
        element.detach(); 
    });
}


Имеется несколько дивов с классом "parent". При нажатии правой кнопкой мыши на один из них всплывает меню с функциями "копировать, вставить, удалить и пр.". При нажатии на "удалить" нужный див должен удалиться. И он удаляется.

Но если я три раза подряд нажимаю на каждый див мышкой и только при последнем нажатии выбираю "удалить", то удаляются все три элемента. А должен только последний. В чём проблема?
  • Вопрос задан
  • 175 просмотров
Решения вопроса 1
Потому что браузер злопамятный.
Он запоминает всё, что вы на него понавешали)

https://jsfiddle.net/ru9q68kr/
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы