Что ж, я предполагаю, что каждая радиокнопка имеет уникальное значение, и им всем дано одно и то же имя.В этом случае вам нужен селектор :checked
:
var $selected = $('input[name="RadioGroup"]:checked', '#someform');
if($selected.length == 0) {
// None is selected
} else {
var whichOne = $selected.val();
// do stuff here
}
, который даст вам значение выбранной в данный момент радиокнопки.Если у вас уже есть id
радиокнопки, которую вы хотите проверить, то это просто:
$('#someradiobutton').is(':checked') // returns true if checked, else false
В частности, поскольку вы специально хотите проверить значение slideshow
, я полагаю, что выif
заявление станет:
if (jQuery('input[name="mainImageLinkHandleSelection"][value="display"]', '#section-of_homepage_display').is(':checked')) {
jQuery('.main_link').hide();
}
РЕДАКТИРОВАТЬ : Я вижу вашу проблему сейчас.Проблема в том, что вы скрываете все элементы .main_link
, а также элементы .homepage_display
.Но когда вы нажимаете радиокнопку выбора домашней страницы, вы не проходите и повторно отображаете элемент .main_link, который отражается группой радиокнопок yhlumberyardstraditional3[of_main_image_link_option]
.
Две вещи:
- Использовать обработчик событий
change
вместо click
.Это предотвратит ненужную работу всей последовательности анимации при нажатии уже выбранной радиокнопки. - Когда элемент отображается, вам нужно будет проверить, отмечены ли какие-либо радиокнопки, и затем вызвать
change
обработчик событий для этих переключателей.
Я пошел вперед и обновил вашу скрипку с проверкой концепции.Основное изменение заключается в следующем:
var toShow = null;
if (this.value === "slideshow") {
toShow = '.homepage_display_slides';
} else if (this.value === "static") {
toShow = '.homepage_display_static';
}
if(toShow) {
jQuery(toShow).show(duration);
// If we just showed any checked radio buttons, let's re-trigger
// them so they can update their groups and such
jQuery('input:checked:visible', toShow).trigger('change');
}
Я также позволил себе обобщить проблему и сократил код до 39 строк.Проверьте это здесь .