Сделайте так:
Пример: http://jsfiddle.net/patrick_dw/K3kvE/
$('#other').change(function(){
$('#otherrace').parent().css( 'visibility', this.checked ? 'visible' : 'hidden' );
});
или используйте display:none
вместо visibility:hidden
и сделайте следующее:
Пример: http://jsfiddle.net/patrick_dw/K3kvE/1/
$('#other').change(function(){
$('#otherrace').parent().toggle( this.checked );
});
То, как вы использовали .toggle()
, было «событием переключения», что означает, что вы фактически назначали событие щелчка, которое переключается между выполнением функций, которые вы передаете ему.
Поскольку это родитель otherrace
, который скрыт, вам нужно перейти к нему, используя .parent()
, а затем установить его свойство visibility
в hidden
или visible
в зависимости от состояния флажка.
Второе решение меняется с использования свойства visibility
на использование display
, так что toggle()
можно вызывать другим способом. То, как он вызывается сейчас, переключается между show()
и hide()
, которые устанавливают свойство display
из none
в исходное значение и обратно.