Трудно придумать заголовок для этого вопроса.Измененный идентификатор не найден jQuery
Подробнее для доказательства концепции, мне интересно, почему это не работает. То, что я пытаюсь сделать, это использовать событие jquery для изменения атрибута идентификатора, а затем использовать другое событие jquery, связанное с этим новым измененным идентификатором.
Например:
<?php
echo <<<END
<html>
<head>
<style>
#before {
color:maroon;
}
#after {
color:blue;
}
</style>
<script type="text/javascript" src="http://code.jquery.com/jquery-2.1.1.min.js"></script>
<title>Test</title>
<script type="text/javascript">
$(document).ready(function(){
$("#before").hover(function() {
$(this).attr("id","after");
});
$("#after").click(function() {
alert("Handler for .click() called.");
});
});
</script>
</head>
<body>
<p id="before">TEST TEXT</p>
</body>
</html>
END;
?>
При наведении курсора над моим тестовым текстом, цвет меняется от темно-бордового до синего, как и ожидался. Я понимаю, что текст теперь будет иметь идентификатор «после», и при нажатии будет применена функция обработчика события клика. Однако это не тот случай, когда быстрый обработчик событий и связанное с ним предупреждение не отображаются.
Я новичок в jquery, возможно, есть функция обработчиков обновлений, которую я пропускаю?
вы не можете сделать это, так как селекторы вычисляются только на дом, готовый в вашем случае ... вам нужно использовать делегирование событий ... и я бы рекомендовал c зависание атрибута типа класса, чем изменение идентификатора –
Вы предлагаете, чтобы это работало вне документа. Или вы эффективно говорите, что взаимодействие с элементом после изменения его идентификатора невозможно? Есть ли способ заставить обновление DOM? – lowcrawler
, обозначая его как повторяющийся, поскольку эта же концепция применяется и здесь ... поскольку селектор изменяется во время выполнения - http://jsfiddle.net/arunpjohny/6k2aemzu/1/ –