2012-03-28 3 views
1

Я использую скрипт из этой дискуссии: https://wordpress.stackexchange.com/a/14711/14649JQuery переключения() вопрос

Он отлично работает, но когда я выбираю другой вход радио, оригинальная коробка не переключается от (плохой), но новый поле появляется (хорошо). Это происходит для любых дополнительных ящиков, которые я добавляю.

jQuery - это не мое дело, и я изучал его без везения! Вот мой код:

<script type='text/javascript'> 
jQuery(document).ready(function($) { 
     $('#feature_box').hide(); 
     $('#standard_lead').hide();    

     // one box 
     $('#value_feature_box').is(':checked') ? $("#feature_box").show() : $("#feature_box").hide(); 
     $('#value_feature_box').click(function() { 
      $("#feature_box").toggle(this.checked); 
     }); 

     // second box 
     $('#value_standard_lead').is(':checked') ? $("#standard_lead").show() : $("#standard_lead").hide(); 
     $('#value_standard_lead').click(function() { 
      $("#standard_lead").toggle(this.checked); 
     }); 
    }); 
</script> 

Спасибо, что посмотрели!

+0

Можете ли вы разместить соответствующий HTML-код? –

+0

Можете ли вы добавить свою разметку, что такое 'feature_box'? это div? Этот код может быть модульным с использованием классов вместо id. –

ответ

0

Причина, по которой другая коробка не исчезает, заключается в том, что вы не сказали об этом!

$('#value_feature_box').click(function() { 
    $("#feature_box").toggle(this.checked); 
}); 

Это говорит о том, чтобы переключать видимость #feature_box, при нажатии на #value_feature_box. Если #value_feature_box не является флажком, измените внутренний код на $("#feature_box").toggle();. Если вы хотите что-то исчезает, а, затем сказать ему:

$('#value_feature_box').click(function() { 
    $("#feature_box").toggle(); 
    $("#standard_lead").toggle(); 
}); 

Значение на внутренней тумблер() круглые скобки говорит, что либо появляются или исчезают (истина или ложь).

+0

Благодарим вас за ввод. Это было решение, которое я придумал, но он был довольно неуклюжим, так как у меня будет около 10 ящиков, и мне нравится использовать '$ (" # box_id "). Toggle();' может стать утомительным ... поэтому я назначаю класс для каждого ящика, чтобы упорядочить его. Благодаря! –

0

Вы переключая только один ящик на клик - вам нужно переключить оба посмотреть jsFiddle:

с этим (и аналогично для другой коробки):

$('#value_feature_box').click(function() { 
     $("#feature_box").toggle(this.checked); 
    }); 

вы в основном говорите - при нажатии (так что this.checked всегда будет правдой), переключите элемент. Из документов:

вы используете версию тумблер, который имеет параметр showOrHide и всегда проходит так, поэтому всегда показывает и только окно, нажал на.

+0

Благодарим вас за ввод. Это было решение, которое я придумал, но он был довольно неуклюжим, так как у меня будет около 10 ящиков, и мне нравится использовать '$ (" # box_id "). Toggle();' может стать утомительным ... поэтому я назначаю класс для каждого ящика, чтобы упорядочить его. Благодаря! –

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