$cour = mysql_sql('SELECT c.id, c.category, cc.name, c.fullname,c.summary FROM
mdl_course c, mdl_course_categories cc WHERE c.id = cc.course');
echo '<table>';
foreach($cour as $cou)
{
$coursename = $cou->fullname;
$courseid = $cou->id;
$summary = $cou->summary;
echo '
<tr style="border:1px solid #BACC82;">
<td><a onclick="ShowHide(); return false;">'.$coursename.'</a></td>
</tr>
<!--SHOW AND HIDE DIV-->
<div id="enclosure" style="display:none;">'.$summary.'</div>
';
}
echo '</table>';
JQUERY在同一文件中
function ShowHide() {
$('#enclosure').animate({"height": "toggle"}, {duration: 1000});
}
在我的代码中,它仅适用于第一行。我想$courseid传递给 Jquery,这样如果我单击课程名称,它应该显示当前课程摘要,如果我单击下一个课程名称,以前的摘要应该隐藏并显示当前课程。谁能帮我一个清晰的代码。
您也可以通过以下方式执行此操作:
$cour = mysql_sql('SELECT c.id, c.category, cc.name, c.fullname,c.summary FROM
mdl_course c, mdl_course_categories cc WHERE c.id = cc.course');
echo '<table>';
foreach($cour as $cou)
{
$coursename = $cou->fullname;
$courseid = $cou->id;
$summary = $cou->summary;
echo '
<tr style="border:1px solid #BACC82;">
<td>
<a onclick="ShowHide('.$courseid.'); return false;">'.$coursename.'</a>
<!--SHOW AND HIDE DIV-->
<div id="enclosure_'.$courseid.'" style="display:none;">'.$summary.'</div>
</td>
</tr>
';
}
echo '</table>';
javascript:
function ShowHide(id) {
$('#enclosure_'+ id).animate({"height": "toggle"}, {duration: 1000});
}
我通过给div 一个 enclose_{ID} 使每个元素都具有唯一的 ID,因为数据库中的 id 都是唯一的,每个div 也是如此。
编辑:请参阅HTML的更新
页面上不能有多个具有相同 Id 的元素。按类名选择,或者更确切地说,应用更复杂的选择器,例如$('#yourtableid div')
如果该div 只是表中的div
不要使用内联 JavaScript:onclick="ShowHide",使用 jQuery 附加一个事件:
<td><a class="show-hide-action">'$coursename.'</a></td>
<div class="enclosure" style="display:none;">'.$summary.'</div>
使存储模块 ID 成为类,不能重复 ID。
$(function() { // encapsulate in document.ready
$('.show-hide-action').click(function() { // bind action
$(this) // 'this' is the clicked element
.parent() // parent should be the TD
.next(".enclosure") // select the corresponding .enclosure
.animate({"height": "toggle"}, {duration: 1000});
});
});
这是未经测试的代码,但应该为您提供它的要点。
<!--SHOW AND HIDE DIV-->
<div class="enclosure" style="display:none;">'.$summary.'</div>
Jquery:
function ShowHide() {
$('.enclosure').animate({"height": "toggle"}, {duration: 1000});
}