Задать вопрос
pashted
@pashted
тыжпрограммист

Как одной функцией добавить элемент в DOM и получить ссылку на его объект?

Приветствую.
Допустим, у меня есть вот такие два блока: codepen.io/Pashted/pen/VKNAJq

Первый уже существует в документе и я без проблем вешаю на него какую-то функцию.
А второй создается скриптом. Но после его создания мне приходится отдельно выполнять поиск этого элемента, чтобы задать обработчик.

Есть ли какая-либо хитрая форма объявления переменной block2, чтобы такой фрагмент:
block2.hover(function() {
  $(this).toggleClass('ok');
});

давал эффект?

ps:
такой вариант работает, но мне не походит:
var block2 = function() {
  $('body').append('<div class="block" id="2">Test block</div>');
  return $('#2');
};

block2().hover(function() {
  $(this).toggleClass('ok');
})
  • Вопрос задан
  • 265 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 2
bootd
@bootd
Гугли и ты откроешь врата знаний!
var div = $('<div />', {
	'id': 'item',
  'class': 'item',
  'text': 'Текст'
}).appendTo('body');

console.log(div);
Ответ написан
ProjectSoft
@ProjectSoft
Front-end && Back-end разработчик
Раньше в jQuery этот метод назывался leave
https://jsfiddle.net/51ndpggt/
PS: И зачем искать созданный элемент, если можно добавить событие во время создания
$("body").append(
    $("<div></div>", {
        'id': 'item',
        'class': 'item',
        'text': 'Текст'
    }).hover(function(e){
          $(this).toogleClass("ok");
    });
);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы