поместить блок внутрь рядом с другими
Добрый день!
есть <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:04. |