0

我有一个包含多个 jQuery slideToggles 的页面。早些时候,我问了一个关于如何在此处关闭切换时重置其中一个切换中的选择的问题:关闭 slideToggle 时如何重置选定的单选按钮?

现在的问题是,如果我在页面上切换打开下一个,它会在另一个打开的切换中重置自检。我想确保只有在包含自测的 div 被切换关闭时才重置测试,而不是在下一个被切换打开时重置。

有没有办法说“仅当它所在的 div 被切换关闭时才重置自检,但如果另一个 div 被切换打开则不会”?

jQuery: $("h2.titleTrigger").click(function(e){ e.preventDefault();

//TOGGLE OPEN/CLOSE THE DRAWER
$(this).toggleClass("active").next().slideToggle("fast");

//UNDO THE SELF TEST
$('.selfTestWrong').removeClass('answerShown');
$('input:radio').prop('checked', false);
$('.selfTestAnswer').slideUp(300);

return false;
});

//self test

$('input:radio').bind('change',function(e){
e.preventDefault();
var parentId = $(this).parents('.selfTest').attr('id');
$('#'+parentId+' .selfTestWrong').addClass('answerShown');
$('#'+parentId+' .selfTestAnswer').slideDown(300);
});

jsFiddle

4

1 回答 1

1

进行以下更改:

//TOGGLE OPEN/CLOSE THE DRAWER
$(this).toggleClass("active").next().slideToggle("fast");
$(this).next().children(".selfTest").children(".selfTestWrong").removeClass("answerShown");
$(this).next().children(".selfTest").children("input:radio").prop("checked", false);
$(this).next().children(".selfTest").children(".selfTestAnswer").slideUp(300);

这会在选定的 div 中找到最接近的输入。这是一个更新的小提琴:http: //jsfiddle.net/bY7jp/3/

于 2013-04-25T18:21:14.067 回答