Я использую функцию для добавления изображений на сайт. Они входят в DIV, используя .html() . После этого мне нужны эти же изображения, чтобы показать эффект при наведении курсора, но ничего не происходит, когда я нахожу их. Если я набираю тот же код, который я использую в функции .html(), тот же класс и т. Д., Зависание работает.Как я могу повторно использовать динамические теги JQuery?
После многих попыток я сузил свою проблему до этого образца. Оказывается, проблема заключается в том, как контейнер DIV предоставляет код, добавленный через .html() ... и мои функции зависания не могут найти динамически добавленные теги.
Вот мой пример код:
<html>
<head>
<title>Problems</title>
<script type ="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
</head>
<body>
<p id="TXToldone">This line was already here</p>
<div id="DIVnewone"></div>
<script>
function createnewone(){
$txthtml="<p id=\"TXTnewone\">And this one got added dynamically</p>";
$("#DIVnewone").html($txthtml);
};
$(document).ready(function() {
createnewone();
});
$("*").on("click", function(){
alert($(this).attr("id"));
});
</script>
</body>
</html>
Примечание: - Это просто сырой пример моей реальной проблемы. Это не то, что я на самом деле пытаюсь выполнить, но решение этого сделало бы меня решить реальный;)
- Первые две функции взяты из фактического кода ... после того, как документ готов Я загружаю pics и рекурсивно добавить html, необходимый для каждый DIV ...
- Третья функция - это просто, чтобы вы, ребята, могли увидеть мою проблему ... Должно быть показывать предупреждение с идентификатором элемента, на который вы нажимаете (и его делает для 1-го абзаца) ... но проверьте, что произойдет, когда вы нажмете второй ... вы не видите идентификатор для этого абзаца, но вместо ID ID для контейнера DIV!
- (да, это также дает сигналы для других родителей, до документа, но эй, это просто пример)
- Если я вручную добавить этот пункт к тому же DIV, что «статическая» пункт показывает его идентификатор при нажатии, но «динамический» один еще показывает идентификатор DIV.
Пожалуйста, советую?
(также, мне нужен сценарий, чтобы остаться в нижней части моего кода, так что он может «видеть» все фотографии)
EDIT так что моя точка яснее: я нужен способ, чтобы добавить содержимое в DIV так другие функции см. в новом коде.
Как вы, ребята, замените эту строку так, чтобы образец кода работал по назначению?
$("#DIVnewone").html($txthtml);
Главное, когда вы присоединяете события ('on()'), этот элемент еще не находится в DOM. Таким образом, мероприятие не будет прикреплено к нему. Вам нужно либо снова присоединить событие к добавленному элементу, либо использовать делегирование делегаций ('delegate' или [' on() '] (http://api.jquery.com/on/#direct-and-delegated- события) в новом jQuery или 'live', который устарел). – kapa