Пытаюсь создать типа контекстного меню на js + jqery
на элемент вешаю слушателя $('body').on('click','#menu-open', function(event){.... и в html <div id = menu-open> <p>открыть меню</p> </div> рядом c <p>, положить новый div в котором менюшка (всплывающая и относительно этого блока) через this все, только вот теперь при выборе элемента из этого меню....она вновь переоткрываеться...хм... |
А почему обработка щелчка по menu-open делегируется, он что добавляется динамически?
|
Цитата:
Допустим, что так надо и это уже есть на странице, тогда:
<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>
|
$('body').on('click','#menu-open' --- "прапрадедушке, к примеру если таких 10ток таких же ссылок или элемнтов, кторые могут открыть менюшку (т.е. на перед мне не известно)...вот и прадедушке делегирую...
|
Цитата:
|
понимаю что одинаковых id быть не моежт документе html
но к примеру есть 5 сылок которые при нажатии на них должны запустить одну и ту же функцию...можно же сделать $('body').on('click','#zapusk', function(event){.... и js отработает |
и вот почему еще дедушке делегируем...сервер отдает html без этой id = menu, она потом появляеться (сервер досылает...) когда пользователь начинает работать
|
Цитата:
Цитата:
Цитата:
Попробуйте щелкнуть по второй ссылке, получится?
<a id="a1" href="#">Link1</a>
<a id="a1" href="#">Link2</a>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script>
$('#a1').click(function(e) {
e.preventDefault();
alert($(this).text())
})
</script>
|
Вы, все верно говорите, про id!
|
как тут так делать что бы код исполнялся...:)
|
| Часовой пояс GMT +3, время: 17:52. |