Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Помогите разобратся с Jquery append (https://javascript.ru/forum/jquery/18443-pomogite-razobratsya-s-jquery-append.html)

unsiker 01.07.2011 00:32

Помогите разобратся с Jquery append
 
Вложений: 1
Есть простенький скрипт на Jquery. Его работа: если нажал на один из чекбоксов на форме все остальные стают недоступными(проставлется атрибут disabled). Но проблема в следующем: при создании страницы количество чекбоксов фиксированное и их приходится добавлять. Добавляю с помощью Jquery append(). Так вот при клике на добавленные с помощью Jquery чекбоксы ничего не происходит. Как сделать так что б при клике на динамически созданный чекбокс происходил вызов нужной функции?
Код:
<html>
<head>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>
</head>
<body>
<script type="text/javascript">
$(document).ready(function() {
    $(":checkbox").click(function() {
          if (this.checked){
              $(":checkbox").attr('disabled', true);
              $(this).attr('disabled', false);
            } else{
                $(":checkbox").attr('disabled', false);
            }
    });
    $("#btn").click(function() {
        var iteration = $("#count").val();
        iteration++;
        $("#check").append('<input type="checkbox" value="'+iteration+'" name="chek['+iteration+']" id="correct"> Check'+iteration+'<br />');
    });
});
</script>
<input type="hidden" value="2" name="chek" id="count">
<div id="check">
    <input type="checkbox" value="1" name="chek[1]" id="correct"> Check1<br />
    <input type="checkbox" value="2" name="chek[2]" id="correct"> Check2<br />
</div>
<br /><br /><br />
<input type="button" id="btn" value="Add CheckBox">
</body>
</html>


Во вложении сама html страничка с проблемным кодом

Gvozd 01.07.2011 01:07

live

unsiker 01.07.2011 11:29

Сделал с помощью .live() и все получилось, спасибо. Но есть еще один вопрос:
когда я кликаю на чекбоксу меня происходят следущие события:
1. все чекбоксы принимают атрибут .attr('disabled', true);
2. Тот чекбокс на который произошло нажатие принимает (до этого у него disabled - true, проставлен в первом пункте ) .attr('disabled', false);

Можно ли как то проставить .attr('disabled', true) всем кроме того чекбокса на который был клик?

melky 08.07.2011 22:06

RTFM !!!

$(selector).not( element ).attr('disabled', true );


Часовой пояс GMT +3, время: 05:07.