Изменение цвета фона при активном checkbox_e
Доброго!
Имеется таблица в виде прайс листа (картинка, название, ..., checkbox). checkbox выводиться <div class="multicart">, соответственно картинка, название аналогично выводится через <div> Как правильно сделать чтоб при активации чекбокса его содержащая ячейка меняла цвет фона. Было сделано вот так (код взят с форума): <style type="text/css"> .mon { background: green; } </style> <script type="text/javascript"> $('.multicart').ready(function(){ $('input').click(function(){ $(this).parent().toggleClass('mon'); }); }) </script> работает, но меняет фон абсолютно всем чекбоксам на странице. |
MixPetrov,
html где? Пожалуйста, отформатируйте свой код! Для этого его можно заключить в специальные теги: js/css/html и т.п., например: [js] ... ваш код... [/js] О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting. |
$('input')-> $('.multicart input[type="checkbox"]') |
Aetae,
Спасибо, все работает. |
А вот для общего развития: можно ли добавить в код изменение цвета фона не только в ячейке с чекбоксом, но и в других?
|
*задумчиво смотрит на расклад куриных потрохов*
$('.multicart input[type="checkbox"]')-> $('.multicart') $(this).parent().toggleClass('mon');-> $(this).toggleClass('mon'); Но вообще непонятно, что подразумевается под "другими", кто знает какая там у вас структура. |
Структура таблицы такая: каждая ячейка строки в таблице формируется <div классом>.
<div class="multicart"> - содержится чекбокс <div class="model"> и тд. В вышеприведенном скрипте фон меняется в ячейке формируемой <div class="multicart">, а вот можно ли за одно поменять фон и <div class="model">, <div class="name"> и т.д. Извиняюсь если не совсем четко объясняю |
Цитата:
Цитата:
Цитата:
|
$('.multicart, .model, .name')А вообще используйте мозг. Догадаться как и что делать можно вообще не зная никакого программирования: логики и гугла достаточно. |
MixPetrov,
так сложно показать? <div class="multicart"> <input type="checkbox"> <div class="model"></div> </div> |
Нет абсолютно не сложно, вот код
<div class="product-list"> <!-- шапка таблицы строка--> <div class="cat-head"> <div class="image head">Изображение</div> <div class="name head">Наименование</div> <div class="attribute head">Характеристики</div> <div class="options head">Доп. опции</div> <div class="price_constant head">Цена</div> <div class="price head">Сумма</div> <div class="quantity_cart head">Кол-во</div> <div class="cart head"></div> <div class="multicart head"><input type="checkbox" value="" /></div> </div> <div> <!-- тело таблицы строка--> <div class="image"><span ><img src=".png" alt=""/></span> <a href=".."><img src=".." title=".." alt=".." /></a></div> <div class="name"><a href="">..</a></div> <div class="description">..</div> <div class="attribute">..</div> <div class="options">..</div> <div class="quantity_cart"> <span class="minus" onclick="quantity(141, '-1', '50', '977')">-</span> <input type="text" name="141" oninput="recalc(141);" size="2" value="50" maximum="977" /> <span class="plus" onclick="quantity(141, '+1', '50', '977')">+</span> </div> <div class="price_constant"> <span class="price-old">..</span> <span class="price-new">..</span> </div> <div class="multicart"><input type="checkbox" value="..." /></div> <div class="cart"> <input type="button" value="Купить" onclick="addToCart('141', $(this).parent().parent().find('input[name^=141]').val());" class="button" /> </div> </div> <div> <!-- тело таблицы строка 2--> <div class="image"><span ><img src=".png" alt=""/></span> <a href=".."><img src=".." title=".." alt=".." /></a></div> <div class="name"><a href="">..</a></div> <div class="description">..</div> <div class="attribute">..</div> <div class="options">..</div> <div class="quantity_cart"> <span class="minus" onclick="quantity(142, '-1', '50', '977')">-</span> <input type="text" name="142" oninput="recalc(142);" size="2" value="50" maximum="977" /> <span class="plus" onclick="quantity(142, '+1', '50', '977')">+</span> </div> <div class="price_constant"> <span class="price-old">..</span> <span class="price-new">..</span> </div> <div class="multicart"><input type="checkbox" value="..." /></div> <div class="cart"> <input type="button" value="Купить" onclick="addToCart('142', $(this).parent().parent().find('input[name^=142]').val());" class="button" /> </div> </div> <!-- тело таблицы строка 3 и т.д --> |
MixPetrov,
так и не понял у каких элементов вы хотите менять класс ... вариант пальцем в небо <!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> .mon { background: green; } </style> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <script> $(function() { $('.multicart input[type="checkbox"]').on('click',function() { $(this).parent().parent().toggleClass('mon'); }) }); </script> </head> <body> <div class="product-list"> <!-- шапка таблицы строка--> <div class="cat-head"> <div class="image head">Изображение</div> <div class="name head">Наименование</div> <div class="attribute head">Характеристики</div> <div class="options head">Доп. опции</div> <div class="price_constant head">Цена</div> <div class="price head">Сумма</div> <div class="quantity_cart head">Кол-во</div> <div class="cart head"></div> <div class="multicart head"><input type="checkbox" value="" /></div> </div> <div> <!-- тело таблицы строка--> <div class="image"><span ><img src=".png" alt=""/></span> <a href=".."><img src=".." title=".." alt=".." /></a></div> <div class="name"><a href="">..</a></div> <div class="description">..</div> <div class="attribute">..</div> <div class="options">..</div> <div class="quantity_cart"> <span class="minus" onclick="quantity(141, '-1', '50', '977')">-</span> <input type="text" name="141" oninput="recalc(141);" size="2" value="50" maximum="977" /> <span class="plus" onclick="quantity(141, '+1', '50', '977')">+</span> </div> <div class="price_constant"> <span class="price-old">..</span> <span class="price-new">..</span> </div> <div class="multicart"><input type="checkbox" value="..." /></div> <div class="cart"> <input type="button" value="Купить" onclick="addToCart('141', $(this).parent().parent().find('input[name^=141]').val());" class="button" /> </div> </div> <div> <!-- тело таблицы строка 2--> <div class="image"><span ><img src=".png" alt=""/></span> <a href=".."><img src=".." title=".." alt=".." /></a></div> <div class="name"><a href="">..</a></div> <div class="description">..</div> <div class="attribute">..</div> <div class="options">..</div> <div class="quantity_cart"> <span class="minus" onclick="quantity(142, '-1', '50', '977')">-</span> <input type="text" name="142" oninput="recalc(142);" size="2" value="50" maximum="977" /> <span class="plus" onclick="quantity(142, '+1', '50', '977')">+</span> </div> <div class="price_constant"> <span class="price-old">..</span> <span class="price-new">..</span> </div> <div class="multicart"><input type="checkbox" value="..." /></div> <div class="cart"> <input type="button" value="Купить" onclick="addToCart('142', $(this).parent().parent().find('input[name^=142]').val());" class="button" /> </div> </div> <!-- тело таблицы строка 3 и т.д --> </body> </html> |
Вложений: 2
А вот для общего развития: можно ли добавить в код изменение цвета фона не только в ячейке с чекбоксом, но и в других?
И еще вопрос (не обязательно, для понимания): Общий чекбокс который активирует чекбоксы таблицы меняет фон только в своей ячейке. |
Цитата:
что такое ячейка, вы по прежнему скрываите как партизан. Цитата:
чтобы на первый чекбокс навесить это, неплохо бы знать где он находится, предоставленный вами html это никак не проясняет. |
MixPetrov,
<!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> .mon .multicart{ background: green; } .mon .name{ border: #0000FF 2px solid; } </style> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <script> $(function() { var chec = $('.multicart input[type="checkbox"]'),first = chec.first(); chec = chec.not(first); first.on('click',function() { chec.prop({checked : !this.checked}).click() }) chec.on('click',function() { $(this).parent().parent().toggleClass('mon',this.checked); }) }); </script> </head> <body> <div class="product-list"> <!-- шапка таблицы строка--> <div class="cat-head"> <div class="image head">Изображение</div> <div class="name head">Наименование</div> <div class="attribute head">Характеристики</div> <div class="options head">Доп. опции</div> <div class="price_constant head">Цена</div> <div class="price head">Сумма</div> <div class="quantity_cart head">Кол-во</div> <div class="cart head"></div> <div class="multicart head"><input type="checkbox" value="" /></div> </div> <div> <!-- тело таблицы строка--> <div class="image"><span ><img src=".png" alt=""/></span> <a href=".."><img src=".." title=".." alt=".." /></a></div> <div class="name"><a href="">..</a></div> <div class="description">..</div> <div class="attribute">..</div> <div class="options">..</div> <div class="quantity_cart"> <span class="minus" onclick="quantity(141, '-1', '50', '977')">-</span> <input type="text" name="141" oninput="recalc(141);" size="2" value="50" maximum="977" /> <span class="plus" onclick="quantity(141, '+1', '50', '977')">+</span> </div> <div class="price_constant"> <span class="price-old">..</span> <span class="price-new">..</span> </div> <div class="multicart"><input type="checkbox" value="..." /></div> <div class="cart"> <input type="button" value="Купить" onclick="addToCart('141', $(this).parent().parent().find('input[name^=141]').val());" class="button" /> </div> </div> <div> <!-- тело таблицы строка 2--> <div class="image"><span ><img src=".png" alt=""/></span> <a href=".."><img src=".." title=".." alt=".." /></a></div> <div class="name"><a href="">..</a></div> <div class="description">..</div> <div class="attribute">..</div> <div class="options">..</div> <div class="quantity_cart"> <span class="minus" onclick="quantity(142, '-1', '50', '977')">-</span> <input type="text" name="142" oninput="recalc(142);" size="2" value="50" maximum="977" /> <span class="plus" onclick="quantity(142, '+1', '50', '977')">+</span> </div> <div class="price_constant"> <span class="price-old">..</span> <span class="price-new">..</span> </div> <div class="multicart"><input type="checkbox" value="..." /></div> <div class="cart"> <input type="button" value="Купить" onclick="addToCart('142', $(this).parent().parent().find('input[name^=142]').val());" class="button" /> </div> </div> <!-- тело таблицы строка 3 и т.д --> </body> </html> |
что такое ячейка, вы по прежнему скрываите как партизан.
Ячейка таблицы в заголовоке формируется: <div class="name head">Наименование</div> Ячейка таблицы в строке формируется: <div class="name"><a href="">..</a></div> чтобы на первый чекбокс навесить это, неплохо бы знать где он находится, предоставленный вами html это никак не проясняет. <div class="multicart head"><input type="checkbox" value="" /></div> |
На рисунке красным я выделил ячейки (кроме ячеек с чекбоксом) которые тоже б меняли цвет фона, а синим выделены ячейки для подписи их класса.
|
MixPetrov,
код в 15 посте устроил или нет? |
Более чем, Спасибо!
|
Часовой пояс GMT +3, время: 13:22. |