Нажмите переключатель jQuery

Я использовал их в сменной системе, где сменный DLLs мог быть загружен/разгружен во времени выполнения. Я искал бы известные символы в каждом DLL и бросил бы их к указателям функции.

70
задан SliverNinja - MSFT 6 June 2012 в 15:59
поделиться

6 ответов

Это легко сделать, перевернув текущее «отмеченное» состояние флажок при каждом нажатии. Примеры:

 $(".offer").on("click", function () { 
       var $checkbox = $(this).find(':checkbox');
       $checkbox.attr('checked', !$checkbox.attr('checked'));
 });

или:

 $(".offer").on("click", function () { 
       var $checkbox = $(this).find(':checkbox');
       $checkbox.attr('checked', !$checkbox.is(':checked'));
 });

или, напрямую управляя свойством DOM 'checked' (т.е. не используя attr () для выборки текущего состояния установленного флажка) :

 $(".offer").on("click", function () { 
       var $checkbox = $(this).find(':checkbox');
       $checkbox.attr('checked', !$checkbox[0].checked);
 });

... и т. Д.

Примечание: начиная с jQuery 1.6, флажки следует устанавливать с помощью prop , а не attr :

 $(".offer").on("click", function () { 
       var $checkbox = $(this).find(':checkbox');
       $checkbox.prop('checked', !$checkbox[0].checked);
 });
214
ответ дан 24 November 2019 в 13:12
поделиться
$('.offer').click(function() { 
    $(':checkbox', this).each(function() {
        this.checked = !this.checked;
    });
});
0
ответ дан 24 November 2019 в 13:12
поделиться

В JQuery я не думаю, что click () принимает две функции для переключения. Для этого вам следует использовать функцию toggle (): http://docs.jquery.com/Events/toggle

0
ответ дан 24 November 2019 в 13:12
поделиться
$('.offer').click(function(){ 
    if ($(this).find(':checkbox').is(':checked'))
    {
        $(this).find(':checkbox').attr('checked', false); 
    }else{
        $(this).find(':checkbox').attr('checked', true); 
    }
});
0
ответ дан 24 November 2019 в 13:12
поделиться

Вы можете использовать функцию toggle :

$('.offer').toggle(function() {
    $(this).find(':checkbox').attr('checked', true);
}, function() {
    $(this).find(':checkbox').attr('checked', false);
});
7
ответ дан 24 November 2019 в 13:12
поделиться

попробуйте изменить это:

$(this).find(':checkbox').attr('checked', true ); 

на это:

$(this).find(':checkbox').attr('checked', 'checked'); 

Не уверен на 100%, что это поможет, но я, кажется, припоминаю, что у меня была аналогичная проблема. Удачи!

0
ответ дан 24 November 2019 в 13:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: