Я столкнулся с интересной проблемой. На моем сайте я динамически меняю содержимое при наведении на определенную ссылку. Это достигается чем-то похожим на:
$('#box').html($('#newcontent').html());
Теперь внутри этой #newcontent
части есть <button>
-элемент, которому я назначил событие щелчка следующим образом: (внутри функции $(document).ready()
)
$("button#buttonName").click(function(){
$("div#containerName").toggleClass("hidden");
}
hidden
- это класс css, который делает отображение: нет магии. Контейнер #containerName
является вне и элементом, содержащим кнопку, и элементом, содержащим структуру, которая изменяется с помощью html()
.
Макет конструкции на данный момент
<div id="somethingthatwhenhoveredoverwillswapthecontent">Hover over me!</div>
<div id="box">Change me!</div>
<div id="newcontent" class="hidden">I am renewed!
<button id="buttonName">Show the weird box at the bottom</button>
</div>
<div id="containerName" class="hidden">
I am content that is only shown when the button is clicked
</div>
Итак, что происходит так: страница загружена, скрипт подкачки контента работает нормально, но кнопка не вызовет событие щелчка, которое по причинам тестирования даже не дало alert('whatever');
. Похоже, что когда html () меняет содержимое с <div id="newcontent">
на <div id="box">
, , событие становится несвязанным (подозреваю).
Это просто я не понимаю концепцию или весь подход сделан неправильно?