Я схожу с ума, пытаясь понять, почему это не работает. Я динамически создаю флажок с помощью JS для включения / отключения текстового поля (также создается динамически).
Код довольно прост:
var text = $(document.createElement("input"));
text.type = "text";
container.appendChild(text);
...
var check = $(document.createElement("input"));
check.type = "checkbox";
check.onclick = function(event) {
if (this.checked) text.enable();
else text.disable();
};
container.appendChild(check);
Я пытался поместить обработчик событий после container.appendChild(check);
, но это дает тот же результат.
Нет ошибок JS, и результаты одинаковы в Chrome, FF3.6 и IE7.
Может кто-нибудь объяснить, почему это не работает? Любые исправления приветствуются.
Странно (потому что теоретически оно должно быть таким же, как указано выше), добавление следующего (после container.appendChild(check);
) работает (флажок первый на странице):
$$("input[type=checkbox]")[0].onclick = function(event) {
if (this.checked) text.enable();
else text.disable();
};
Мне это не очень нравится, так как оно кажется "грязным", и чекбокс может быть не первым на странице позже ...
Кстати, $ и $$ взяты из Prototype.
Заранее спасибо за любую помощь.