2013-06-02 3 views
-2

У меня есть список флажков с помощью css спрайта. Флажки в порядке, но я бы хотел, чтобы, когда пользователи проверили все флажки, он (и только тогда) отобразит кнопку внизу страницы.Кнопка дисплея после отметок 5x отмечена галочкой

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

У меня есть jfiddle, но не получите целое - должен сопровождаться кодом?

TY

+0

Вы можете сделать это с помощью jquery. –

+1

показать нам свой код ... – Pevara

+0

использовать javascript/jquery – lazyprogrammer

ответ

1

В теории это может быть сделано только с помощью CSS, с помощью селектора :checked, в сочетании с селектором + сиблингов. CSS будет выглядеть примерно так:

.checkbox:checked + label + .checkbox:checked + label + .checkbox:checked + label + .checkbox:checked + label + .checkbox:checked + label + #the-button { 
    display: block; 
} 

В теории это должно работать, но когда я попробовал его в jsFiddle он действовал немного странно. В любом случае, я не думаю, что это очень эффективное решение, потому что его трудно отлаживать и требует, чтобы ваш html имел определенную структуру, которая не может измениться.

В реальной жизни это будет сделано с несколькими строками jQuery. Код, который я придумал, выглядит так:

// cache he collection of checkboxes 
var $checkboxes = $('#js-solution .checkbox'); 
// when a checkbox changes 
$checkboxes.change(function() { 
    // filter out the ones that are checked 
    var $checked = $checkboxes.filter(':checked'); 
    // if the number of checked ones is 5 
    if ($checked.length == 5) { 
     // show the button 
     $('#the-js-button').css('display', 'block'); 
    // if the number of checked ones is not 5 
    } else { 
     // hide the button 
     $('#the-js-button').css('display', 'none'); 
    } 
}); 

Комментарии должны быть достаточными, чтобы вы поняли, что происходит, но не стесняйтесь спрашивать.

я поставил оба решения рядом друг с другом в этой скрипке: http://jsfiddle.net/7GN7q/1/
Решение CSS не работает для меня, но я думаю, что это Chrome вещь, потому что я не вижу, что является недопустимым, в то время как проверки стиль применяется, а снятие и проверка display:block в инспекторе действительно заставляет его работать. В реальной жизни я все равно пошел бы на решение js.

+0

Большое спасибо. Я посмотрю и отчитаю. – Maverick

+0

Я получаю флажки для отображения, но у вас есть проблемы с кнопкой, которая появляется перед всеми проверенными ячейками. Также есть способ, которым я могу использовать два флажка, которые я разработал? checkbox1.png & checkbox2.png или с спрайтом checkbox.png – Maverick

+0

да, вы можете. проверьте реализацию Райана Файта. (google it) –

1

Вы также можете видеть, что с селектором ~ входной флажок не обязательно должен быть в строке. Это может быть только 5 из десяти, например. forked jsfiddle: http://jsfiddle.net/GCyrillus/sqRaG/

.checkbox:checked ~ .checkbox:checked ~.checkbox:checked ~ .checkbox:checked~ .checkbox:checked ~ #the-button { 
    display: block; 
} 
+0

Это точка на - Спасибо и Peter & GC. Теперь, как я могу заменить флажок - Я смотрю d в других учебниках, но не повезло. – Maverick

+0

заменить флажок с изображением визуально делается с помощью ввода + его метки. Изобразить изображение в ярлыке. установите checbox на абсолютный и и очень далеко от экрана. они вы есть. Если метка и флажок установлены с правильными идентификаторами атрибутов и для. –

+0

, если вы добавите шестой: проверили селектор, вы можете снова спрятать кнопку. –

Смежные вопросы