2014-01-06 3 views
0

Я рассмотрел несколько примеров использования .show(), но я все еще не могу заставить мое работать. Моя цель состоит в том, чтобы всплывать div «gateInformation», когда нажата кнопка «gateNeededYes». До сих пор div остается скрытым. Если бы кто-нибудь мог объяснить, в чем я ошибаюсь, это будет очень признательно! Вот код: CSS:JQuery .show() - нет эффекта

#gateInformation { 
    display: block; 
} 

JS:

/Gate Информация

if($('#gateNeededYes').prop('checked')){ 
     $("#gateInformation").show("blind" , 1000); 
    } 

HTML:

Gates Нужно:

  No <input type="radio" name="gateNeeded" id="gateNeededNo" /> 
      Yes <input type="radio" name="gateNeeded" id="gateNeededYes" /> 
      <div id="gateInformation" name="gateInformation"> 
       Gates Needed: 
       <select name="gateHeight" id="gateHeight"> 
        <option value="select">Select Gate Height</option> 
        <option value="4fg">4 Ft. Gate</option> 
        <option value="6fg">6 Ft. Gate</option> 
        <option value="8fg">8 Ft. Gate</option> 
       </select> 
       Pool Spring and Latch: 
       <input type="checkbox" name="psl" id="psl"> 
      </div> 
+0

попробуйте установить 'display: none;' Я считаю, что это должно заставить его работать – Adjit

+0

Что это за оператор if? Ваш код должен работать, предполагая, что он находится в событии изменения указанных переключателей. –

+0

это проблема ... '$ (" # gateInformation "). Show (" blind ", 1000);' ... должно быть '$ (" # gateInformation "). Show (1000," blind "); ' – zgr024

ответ

0

Если вы хотите, чтобы выполнить код после того, как радио-кнопка нажата, то вы можете попробовать click событие тоже, как:

$('#gateNeededYes').click(function() { 
+1

Неправильно,' prop() 'не использует': checked'. Я думаю, вы сбиваете с толку 'is()' – epascarello

+0

@epascarello, вы правы, я смутил его методом 'is()' .thanks для исправления sir :) –

5

Если вы собираетесь показать что-то, он должен начать скрытый

#gateInformation { 
    display: none; 
} 

, то вам нужен обработчик событий

$('#gateNeededYes').on('change', function() { 
    if (this.checked) { 
     $("#gateInformation").show("blind", 1000); 
    } 
}); 

Тогда вам придется включить JQuery UI для эффектов для работы с show()

FIDDLE

+0

Вы также должны скрыть его: [FIDDLE ] (http://jsfiddle.net/L433P/) –

+0

@ Жан-Поль - ОП не просил об этом, и если так, то это не способ сделать это, это -> http://jsfiddle.net/D5SYV/1/ – adeneo

+0

'toggle' действительно лучше. Не спрашивал, но это все еще хорошая особенность, не так ли? –

2

Только в том случае, если вы используете старую JQuery: в JQuery 1.5 и старше вы должны использовать .attr('checked') вместо .prop('checked')

EDIT:

JQuery 1.5, а не 1,8

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