2015-02-23 3 views
0

У моего javascript есть проблема. Наведение/выбранное состояние работает только при нажатии первой кнопки. Но когда вы нажимаете остальные, выбранное состояние уже работает.Другие опции div не работают

$('.option-btn').click(function(){ 
    if ($('.option').hasClass('selected')) { 
     $(this).removeClass('selected'); 
    } else { 
     $(this).addClass('selected'); 
    } 
});  

В результате пользователь должен щелкнуть столько, сколько сможет. (Создание нескольких кнопок, чтобы быть активным/выбрано)

Вот образец скрипка: http://jsfiddle.net/fdLfthnv/

+0

'$ ('опция')' вернет HTMLCollection где многие эль ements имеет одно и то же имя класса, поэтому только для первого элемента он работает ... –

ответ

0

Изменить

if ($('.option').hasClass('selected')) 

в

if ($(this).hasClass('selected')) 

FIDDLE

UPDATE ответить OP Дополнительные возможности Вопрос:

Изменить JQuery это:

$('.bet-offer div.option').click(function(){ 
     if ($(this).hasClass('selected')) { 
      $(this).removeClass('selected'); 
      $(this).siblings().css('pointer-events', 'auto'); 
     } else { 
      $(this).addClass('selected'); 
      $(this).siblings().css('pointer-events', 'none'); 
     } 
    }); 

Обновлено FIDDLE

+0

это сработало! благодаря! – kgam

+0

Это хорошая новость. Все самое лучшее с вашим сайтом. – sideroxylon

+0

Однако мой клиент хочет отключить другие кнопки подряд, если он уже выбрал кнопку из этой строки. взгляните на это (http://jsfiddle.net/1vuf1gm7/) – kgam

0

Я обновил свою скрипку: http://jsfiddle.net/fdLfthnv/1/

$('.option') вернется HTMLCollection, не каждый щелкнул элемент. Используйте $(this)

Делай так:

$('.option-btn').click(function(){ 
    if ($(this).hasClass('selected')) { 
     $(this).removeClass('selected'); 
    } else { 
     $(this).addClass('selected'); 
    } 
}); 
+0

он сработал! большое спасибо! – kgam

+0

@kgam Вы можете принять как ответ .. –

0

Вы должны изменить $ ('Опция') до $ (это) на второй линии вашего JavaScript:

$('.option-btn').click(function(){ 
     if ($(this).hasClass('selected')) { 
      $(this).removeClass('selected'); 
     } else { 
      $(this).addClass('selected'); 
     } 
    }); 

https://jsfiddle.net/lemoncurry/qbchar6L/

+0

это сработало! спасибо большое :) – kgam

+0

@kgam Нет проблем. Вы можете принимать ответ и/или голосовать. –

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