我对我写的一些 jQuery 有一个小问题。我有两个按钮,它们下面都有一个隐藏的 div。单击按钮时,相应的 div 会使用 slideDown 或 slideUp 动画进入或退出视图。我遇到的问题是,当调用 slideUp(隐藏 div)时,它也隐藏了按钮。这是不正确的,因为按钮需要保持在原位,并且只有包含表格的 div 需要进行动画处理。
我在下面创建了一个 jFiddle 来更好地解释我的意思:
这是我的代码:
HTML:
<div id="rightContent">
<div class="" id="yourAssessments">
<h3>Your Assessments</h3>
<div class="innerPadding">
<h4>Please choose an assessment: </h4>
<div class="onlineModuleAssessmentWrapper">
<div class="assessmentButton" data-assessment-id="1">Swim Instructor Default</div>
<div data-assessment-id="1" class="assessmentTableWrap">
<table>
<tr>
<td>
Planning </td>
<td>
Compelted
</td>
</tr>
<tr>
<td>
Doing It </td>
<td>
Compelted
</td>
</tr>
<tr>
<td>
Learning and Communication Styles/Techniques </td>
<td>
Compelted
</td>
</tr>
<tr>
<td>
Debrief </td>
<td>
Compelted
</td>
</tr>
</table>
</div>
</div>
<div class="onlineModuleAssessmentWrapper">
<div class="assessmentButton" data-assessment-id="3">Test Assessment 3</div>
<div data-assessment-id="3" class="assessmentTableWrap">
<table>
<tr>
<td>
Planning </td>
<td>
Compelted
</td>
</tr>
<tr>
<td>
Doing It </td>
<td>
Compelted
</td>
</tr>
<tr>
<td>
Learning and Communication Styles/Techniques </td>
<td>
Compelted
</td>
</tr>
<tr>
<td>
Debrief </td>
<td>
Compelted
</td>
</tr>
</table>
</div>
</div>
</div>
</div>
jQuery:
jQuery(".assessmentTableWrap").hide();
jQuery(document).on("click", '.assessmentButton', function () {
var linkedAssessmentId = jQuery(this).attr("data-assessment-id");
if (jQuery("div[data-assessment-id=" + linkedAssessmentId + "]").is(":hidden")) {
jQuery("div[data-assessment-id=" + linkedAssessmentId + "]").slideDown("slow");
} else {
jQuery("div[data-assessment-id=" + linkedAssessmentId + "]").slideUp("slow");
}
});
任何人都可以看到为什么会发生这种情况或我哪里出错了?谢谢!!