Jump to content
  • 0

Помогите найти ошибку


RodgerFox
 Share

Question

Есть список радио кнопок, каждая находится в своем li, при нажатии на другой инпут или лабел класс меняется на активный у li.

Если работать с одним списком <ul><li../><li.../></ul> То все отлично, а как быть если их больше? Подскажите пожалуйста, я сам не смогу додумать.

Сам код:

$(document).ready(function(){
$('.variants input[type="radio"]').click(function() {
console.log('li[for="' + $(this).attr('id') + '"');
$('li').removeClass('radioOn').addClass('radioOff');
$('li[for="' + $(this).attr('id') + '"]').removeClass('radioOff').addClass('radioOn')
});

$('.variants input[type="radio"]:checked').click();
});

Примерный html:

<article>
<ul>
<li for="id_1"><input ... /><label .. /></li>
<li for="id_1"><input ... /><label .. /></li>
</ul>
</article>
<article>
<ul>
<li for="id_53"><input ... /><label .. /></li>
<li for="id_54"><input ... /><label .. /></li>
</ul>
</article>
<article>
<ul>
<li for="id_86"><input ... /><label .. /></li>
<li for="id_87"><input ... /><label .. /></li>
</ul>
</article>

p.s. для каждого article может использовать еще свой уникальный индификатор?

Edited by RodgerFox
Link to comment
Share on other sites

15 answers to this question

Recommended Posts

  • 0


$(document).ready(function(){
$('input[type="radio"]').click(function() {
$('li').removeClass('radioOn').addClass('radioOff');
$(this).parent().removeClass('radioOff').addClass('radioOn');
});
});

И как это работает?

http://jsfiddle.net/4Pgrn/

Вот структура

Edited by RodgerFox
Link to comment
Share on other sites

  • 0

Блин не отправилось сообщение, дело все в шаблонизаторе. Поэтому добавить каждому первому элементу свой класс очень трудоемко. А если при помощи сss использовать :first-child то потом будут траблы при переключении на другие инпуты.

Link to comment
Share on other sites

  • 0

Каждому первому элементу добавить класс через шаблонизатор проще даже чем в JS. По элементам цикл пробегает? Если итерация цикла первая добавляем класс, куда уж проще?

Link to comment
Share on other sites

  • 0

Пробовал несколько примером, короче разобрался)

$('ul li:first-child').addClass('on');

наверное спешил и поэтому сразу не получилось.

http://jsfiddle.net/4Pgrn/30/ Как заставить перент получать родителя не p, а li???

А вообще это не столь важно.

Использую html 5 поэтому инпут без слеша / в конце и можно не использовать параграф.

Большое вам спасибо. Вы очень мне помогли.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy