поместить блок внутрь рядом с другими
Добрый день!
есть <div id="menu"> <p>Привет</p> </div> $('body').on('click','#menu', function(event){ let html = 'ля ля'; $('<div/>', { }).css({ left: '20px', top: '20px' }) .appendTo($(event.target)) .append( html ) }); вот этот код внутрь p помещает div вставить блок ряодм возле <p>Привет</p> |
Sergey1986,
что хотите сделать, код html? |
да
типа всплаывающие менюшку |
.appendChild(
html ) |
ругаеться
|
$('<div/>', { left: '20px', top: '20px', html: html }).appendTo(this); |
Спасибо!!!
|
Sergey1986,
не правильно, я тоже просто скопировал, а нужно $('<div/>', { style: 'left:20px;top:20px', html: html }).appendTo(this); Либо $('<div/>', { html: html }).appendTo(this).css({параметры}).и т.д.; А вообще стили таким вещам задают в CSS, а вот размеры которые могут зависеть от содержания, позиционирование, это после добавления рассчитывают. |
Цитата:
$('<div/>', {css : { left: '20px', top: '20px'}, html: html }).appendTo(this); |
рони, а смысл? Тут ведь тоже "ля ля пример", а что на самом деле хотят не известно, может все таки css({left: function() {}, ... нужен будет? А позицию по умолчанию лучше в css.
|
Пытаюсь создать типа контекстного меню на 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!
|
как тут так делать что бы код исполнялся...:)
|
Цитата:
|
но если построить вот такую конструкцию
$('body').on('click','#show', function(){ alert($(this).attr('view');) }); <a href="#" id="show" view="ляля"></a> <a href="#" id="show" view="123"></a> <a href="#" id="show" view="лял321я"></a> она сработает и можно вытащить данные |
Цитата:
|
ну да через нее...пока работает...не трогую...
го...проекты |
чем чревато если так оставить?
|
Цитата:
Мы человеки, а человекам свойственно рассуждать, а рассуждая разве сложно понять, что видя перед собою огурец, помидор, тыкву, убеждать себя, что они все баклажаны, является чистой воды глупостью? С какого перепуга вы решили все элементы коллекции (а у вас коллекция) обозвать одним уникальным идентификатором? Что нет других признаков, которые бы их объединяли, например имя класса? И почему все таки body, а не иное, да и вообще почему именно делегирование? Трудно искать черную кошку в темной комнате, так и мне сложно что-то сказать, не зная что у вас творится. |
Часовой пояс GMT +3, время: 15:21. |