Показать сообщение отдельно
  #13 (permalink)  
Старый 05.01.2019, 23:29
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Sergey1986
через this все, только вот теперь при выборе элемента из этого меню....она вновь переоткрываеться
Все равно не понятно чего хочется. Во-первых почему все таки делегирование обработчика причем прапрадедушке. Во-вторых почему добавляется. Если строится некое меню, то его можно на чистом css сделать.

Допустим, что так надо и это уже есть на странице, тогда:

<div id="menu"><p>Open</p></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script>
$('#menu').click(function(){
    $('<ul style="display:none;"><li>111111</li><li>222222</li></ul>') 
        .appendTo(this) //добавили контент
        .slideDown().click(function(e) { //показали его и определили выбор в нем
            e.stopPropagation(); //запретили всплытие события
            console.log($(e.target).text()); //что-то выполнили по выбору
            $(this).slideUp(function() { //спрятали контент
                $(this).remove() //удалили контент, правда это будет оправдано если контент различен 
            })
        })
});
</script>

Последний раз редактировалось laimas, 05.01.2019 в 23:32.
Ответить с цитированием