我有一个包含多个jQuery slideToggles的页面。之前,我问过一个关于如何在此处关闭切换时重置其中一个切换中的选择的问题:How to reset selected radio buttons when closing slideToggle?
现在的问题是,如果我在页面上切换下一个,它会在另一个打开的切换中重置自检。我想确保只有当包含自测试的div切换为关闭时才重置测试,而不是在下一个切换为打开时重置。
有没有办法说“只有在其中的div被切换为关闭时才重置自检,但如果另一个div切换为打开则没有”?
jQuery的: $( “h2.titleTrigger”)。点击(函数(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);
});
答案 0 :(得分: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/