Не могу работать с элементами DOM после вызова AJAX - PullRequest
1 голос
/ 24 февраля 2011

У меня большой ответ AJAX, который вставляет хорошее количество HTML. После этого я не могу работать ни с одним из вновь созданных идентификаторов или классов, как если бы они присутствовали при загрузке формы.

Я изучил .live (), который решает одну из моих проблем, но не другую.

Я хочу показать DIV либо по идентификатору, либо по классу, который был вставлен через AJAX .html () при нажатии на ссылку.

Пример:

КОД:

html_out = "<div class='span-1'><a href='#' onClick='show_sub_row(\"#sub_row" + id + "\"); return false;'>[ + ]</a></div>";
html_out += '<div class="hidden_sub_row prepend-2" style="display: none;" id="#sub_row' + id + '">';
html_out += 'Content';
html_out += '</div>';
$('#search_results').html(html_out);

Затем после создания HTML я пытаюсь:

function show_sub_row(sub_row) { 
$(sub_row).show('fast');
}

Я знаю, что это ссылка на правильный идентификатор, так как я могу сделать предупреждение (sub_row), и он показывает правильный идентификатор, который совпадает с идентификатором, показанным с помощью FireBug для проверки скрытого DIV.

Ответы [ 3 ]

3 голосов
/ 24 февраля 2011

Если sub_row не является инициализированной переменной где-то за пределами кода, который вы здесь представили, блок должен быть:

function show_sub_row(sub_row) { 
$('#sub_row').show('fast');
}

Кроме того, ваш фактический HTML-идентификатор для sub_row содержит символ #, что может затруднить выявление реальной проблемы. Я бы изменил его на:

html_out += '<div class="hidden_sub_row prepend-2" style="display: none;" id="sub_row' + id + '">';

1 голос
/ 24 февраля 2011

Не обращая внимания, я идиот и только сейчас заметил, что я включил знак # в свой идентификатор, поэтому он не работал.

1 голос
/ 24 февраля 2011

используйте # перед sub_row

function show_sub_row(sub_row) { 
$('#sub_row').show('fast');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...