радио jQuery onchange переключает класс родительского элемента?

env:

  • docker daemon: 1.12.3
  • docker клиент: 1.12.2
  • docker api: 1.24
  • docker- machine: 0.8.2

Перед созданием машины

вы можете использовать args для установки одного или нескольких небезопасных реестров и зеркал реестра .eg:

один реестр

docker-machine create -d virtualbox --engine-insecure-registry hostname:5000  --engine-registry-mirror http://hostname:5000 n1

несколько реестров

docker-machine create -d virtualbox --engine-insecure-registry hostname:5000 --engine-insecure-registry hostname:5001  --engine-registry-mirror http://hostname:5000 n1

После создания машины

Вы можете отредактировать / var / lib / boot2docker / profile, чтобы добавить реестры и зеркала

docker-machine ssh [machine-name]
vi /var/lib/boot2docker/profile

добавить реестр и зеркала в EXTRA_ARGS

EXTRA_ARGS='
--label provider=virtualbox
--insecure-registry hostname:5000
--insecure-registry hostname:5001
--registry-mirror   http://hostname:5000
--registry-mirror   http://hostname:5001

, теперь вам нужно перезапустить машину и проверить ее

docker-machine restart [machine-name] 
docker info 

этот метод не работает после создания машины

отредактируйте $ USER / .docker / machine / machines / default /config.json

"EngineOptions": {
    "InsecureRegistry": [
        "XXX.XXX.virtual"
    ],
}
10
задан Robert MacLean 8 June 2009 в 14:05
поделиться

4 ответа

Попробуйте что-то вроде этого:

if($(this).is(':checked'))  {
    $(this).parent().parent().parent().find('.green').removeClass('green');
    $(this).parent().addClass('green');
}

Это найдет элемент таблицы вашей текущей группировки переключателей, найдет все элементы с зеленым классом и удалит класс.

В качестве альтернативы, если у вас есть только одна группа переключателей на странице, было бы проще сделать это:

$('.green').removeClass('green');
13
ответ дан 3 December 2019 в 14:18
поделиться

Попробуйте следующее:

if($(this).is(':checked')) {
    $(this).parent().siblings('td.green').removeClass('green');
    $(this).parent().addClass('green');
}
4
ответ дан 3 December 2019 в 14:18
поделиться

Вы не должны использовать событие change () для переключателей и флажков. Он ведет себя немного странно и непоследовательно в разных браузерах (вызывает проблемы во всех версиях IE)

Вместо этого используйте событие click () (не беспокойтесь о доступности, потому что событие click также будет запущено, если вы активируете / выберете переключатель с клавиатурой)

И, как здесь указывали другие, сбросить зеленый также легко:

Так что просто измените свой код на

$('#myRadio').click(function() {           
    $(this).parents("tr").find(".green").removeClass("green");

    if($(this).is(':checked'))  {
        $(this).parent().addClass('green');
    }
});

EDIT: как указано в комментарии, также измените предыдущий td :

$('#myRadio').click(function() {           
    $(this).parents("tr").find(".green").removeClass("green");

    if($(this).is(':checked'))  {
        $(this).parent().prev().andSelf().addClass('green');
    }
});

или даже лучше, превращая все элементы td родительской строки в зеленый:

$('#myRadio').click(function() {           
    $(this).parents("tr").find(".green").removeClass("green");

    if($(this).is(':checked'))  {
        $(this).parents("tr").find("td").addClass('green');
    }
});
13
ответ дан 3 December 2019 в 14:18
поделиться

Я только что написал решение, которое не заботится о том, насколько глубоко вложены радиокнопки, оно просто использует атрибут name радиокнопок. Это означает, что этот код будет работать без изменений где угодно, я думаю - мне пришлось его написать, так как у меня странная ситуация, когда один переключатель вложен иначе, чем его когорты с тем же именем.

$('input[type="radio"]').change( function() {
    // grab all the radio buttons with the same name as the one just changed
    var this_radio_set = $('input[name="'+$(this).attr("name")+'"]');

    // iterate through each  
    // if checked, set its parent label's class to "selected"
    // if not checked, remove the "selected" class from the parent label
    // my HTML markup for each button is  <label><input type="radio" /> Label Text</label>
    // so that this works anywhere even without a unique ID applied to the button and label
    for (var i=0; i < this_radio_set.length;i++) {
        if ( $(this_radio_set[i]).is(':checked') ) $(this_radio_set[i]).parents('label').addClass('selected');
        else $(this_radio_set[i]).parents('label').removeClass('selected');
    }
});
4
ответ дан 3 December 2019 в 14:18
поделиться
Другие вопросы по тегам:

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