|
|
|
| у меня есть на странице 3 чекбокса:
<input type=checkbox name=ch[]>
<input type=checkbox name=ch[]>
<input type=checkbox name=ch[]>
<a id="check-all">Выделить все</a>
<script>
$("#check-all").click(function () {
$("input[name=ch]").attr("checked", "checked");
});
</script>
|
если я добавлю еще например 2 чекбокса динамически (тем же jquery), то у меня они не будут выделяться при нажатии <a id="check-all">Выделить все</a>
Что можете предложить? | |
|
|
|
|
|
|
|
для: Ильдар
(11.01.2012 в 15:21)
| | Предложить можно единственное:
1) выбросить JQuery и никогда более этими "костылями для убогих" не пользоваться
2) изучить нормальный Javascript+DOM браузеров и делать всё, что вам будет угодно. | |
|
|
|
|
|
|
|
для: Ильдар
(11.01.2012 в 15:21)
| |
$(function(){
$('#check-all').click(function () {
$('input[name="ch[]"]').attr("checked", "checked");
});
});
|
Странно что у вас до этого работало. | |
|
|
|
|
|
|
|
для: Ильдар
(11.01.2012 в 15:21)
| | чтобы учитывало динамически добавленные элементы используйте live()
$("selector").live('click',function () { })
|
| |
|
|
|
|
|
|
|
для: AlexSol
(13.01.2012 в 12:17)
| | Спасибо всем.
Еще замечания
Замечание 1: начиная с jQuery-1.7, данный метод считается устаревшим. Предпочтительным является методом .on().
Замечание 2: убрать установленный обработчик можно с помощью метода die().
Замечание 3: для правильной работы метода live(), необходимо вызывать его непосредственно после выбора элементов с помощью селектора.
$("div").live("click", foo); - правильно, $("div").next().live("click", foo); - неправильно.
|
| |
|
|
|