Доступ к Ajax / Dynamic флажки - PullRequest
       4

Доступ к Ajax / Dynamic флажки

1 голос
/ 02 августа 2011

Как установить все флажки, которые были возвращены как часть запроса AJAX?

У меня есть страница, на которой отображаются сводки сообщений электронной почты (например, gmail / yahoo / etc ... inbox).С каждой сводкой связан флажок, чтобы мой пользователь мог делать с сообщением любое количество вещей.Вверху и внизу списка есть опция «проверить все».Я знаю, как связать функции делегатов с динамическими флажками, но я не могу найти способ дать моей кнопке «Проверить все» возможность манипулировать этими динамическими элементами.Пример:

//get the list of messages
$.ajax({
    type: "POST",
    url: "GetMessages.asmx/GetMessagePreview",
    data: "{'FolderID': '5'}",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (result) {
       //code here to create a checkbox row (checkbox, message title, etc...)
       var cbRow = '<input type="checkbox" class="msg_check" ...etc... />'
       //code here to insert to a div or other container   
}
 });

$("#selectAllButton").click( function(){
   ????? This is the blank I need filled in...
});

Любая помощь будет принята с благодарностью.Спасибо.

Ответы [ 2 ]

0 голосов
/ 02 августа 2011

Если вы пытаетесь сделать элементы, которые приходят с вызовом ajax , наследуют текущее состояние флажка #selectAll, то вам нужно прочитать это и применить его при создании новых элементов .

так

$.ajax({
    type: "POST",
    url: "GetMessages.asmx/GetMessagePreview",
    data: "{'FolderID': '5'}",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (result) {

       var currentState = $("#selectAllButton").is(':checked') ? 'checked' : '';

       //code here to create a checkbox row (checkbox, message title, etc...)
       var cbRow = '<input type="checkbox" class="msg_check" '+ currentState +' />';
       //code here to insert to a div or other container   
}
 });

$("#selectAllButton").click( function(){
   // the way you normally select your elements..
   $('.msg_check')....
});
0 голосов
/ 02 августа 2011

Это должно быть просто:

$("#selectAllButton").click( function(){
    if (this.checked)
        $('.msg_check').attr('checked', 'checked');
    else
        $('.msg_check').removeAttr('checked');
});

Отредактировано: если вы хотите вставить элемент в том же состоянии, что и все остальные элементы (все отмеченные / не отмеченные), выполните следующее:

// ...
var checked = $("#selectAllButton").is(':checked');
var cbRow = $('<input type="checkbox" class="msg_check" />');
cbRow.appendTo(list);
var checkbox = cbRow.find('.msg_check');

if (checked)
    checkbox.attr('checked', 'checked');
else
    checkbox.removeAttr('checked');
// ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...