Программно установить флажок в мобильном jQuery в обратном вызове - PullRequest
0 голосов
/ 18 марта 2012

Документация говорит, что использовать:

$("input[type='checkbox']").bind( "change", function(event, ui) {

Но я хочу знать, правда ли это по-прежнему

$("input:checkbox]").on('change', function(event, ui) {

Кроме того, я бы хотел, чтобы проверка не появлялась, а затем программно отображать ее при выполнении обратного вызова.

Решение, вероятно, включает метод обновления.

1 Ответ

9 голосов
/ 20 марта 2012

Вы хотите использовать

$(this).removeAttr('checked').checkboxradio('refresh');

чтобы снять флажок, а затем

$(this).prop('checked',true).checkboxradio('refresh');

чтобы включить его.

$('input:checkbox').on('change', function(myEvent, ui) {
    var settings = {};
    settings.data = {};
    settings.data.PersonID = $(this).val();
    settings.data.EvntID = $('#EvntID').val();

    if ($(this).is(':checked')) {
        $(this).removeAttr('checked').checkboxradio('refresh');
        settings.data.method = 'check';
        settings.context = this;
        myXHR = $(this).myAjax('Evnt.cfc',settings);
        myXHR.done(function(result) {
            if (!result.MSG) {
                $(this).prop('checked',true).checkboxradio('refresh');
            }
        });
    } else {
        $(this).prop('checked',true).checkboxradio('refresh');
        settings.data.method = 'uncheck';
        myXHR = $(this).myAjax('Evnt.cfc',settings);
        myXHR.done(function(result) {
            if (!result.MSG) {
                $(this).removeAttr('checked').checkboxradio('refresh');
            }
        });
    }
});
...