Ваша проблема связана с тем, что .click()
привязывает ваш обработчик только к уже существующим элементам, которые соответствуют селектору. Вам необходимо использовать .live()
или .delegate()
, которые будут привязывать ваш обработчик к элементам, которые существуют как сейчас, так и в будущем. Для простоты, давайте пойдем с .live()
:
$("#myID").live("click", function() {
alert("Hi!");
});
"Как это работает?" Вы можете спросить. Ну, .live()
фактически связывает ваш обработчик с указанным событием с document
. Затем он следит за указанным событием, когда всплывает DOM. Когда он достигает document
, он проверяет, где произошло событие, если оно произошло от элемента, соответствующего вашему селектору, срабатывает ваш обработчик.
.delegate()
работает во многом таким же образом, за исключением того, что он привязывает обработчик к элементу, который вы указываете для $()
, и в качестве параметра он принимает селектор. Затем он отслеживает событие и, когда всплывает до элемента, указанного в $()
, он проверяет, произошло ли событие из элемента, который вы указали в качестве первого параметра, и если это происходит, ваш обработчик срабатывает.