我在表格行上有一个JavaScript点击功能,但是当我点击它时,该功能仅适用于第一行。我该如何解决这个问题?
<script type="text/javascript">
$(document).ready(function(){
$('#detpanel').hide();
$("#showdet").click(function(){
$('#detpanel').slideDown(500);
});
$("#hidedet").click(function(){
$('#detpanel').slideUp(500);
});
$('#showdet').hover(function(){
$(this).divhover("background-color", "yellow");
});
});
</script>
<tbody>
<?php $i = 0; ?>
@foreach ($auser as $res)
<?php $i += 1; ?>
<tr @if($i%2==0) class="bgcolor dihover" @endif id='showdet' class="dihover">
<td>{{ $res->id }}</td>
<td>{{ $res->name }}</td>
<td>{{ $res->email }}</td>
<td>
<a class="default-btn" href="/pms/admin/user/edit/{{ $res->id }}">Edit</a> |
<a type="submit" class="default-btn del" data-id="admin-user" href="pms/admin/user/delete/{{ $res->id }}">Delete</a>
</td>
</tr>
@endforeach
</tbody>
答案 0 :(得分:2)
元素的ID必须是唯一的,因为您在循环使用类中创建元素。
使用ID选择器时,它将仅返回具有所述ID的第一个元素,因此在您的情况下,单击处理程序仅注册到第一个元素
<tbody>
<?php $i = 0; ?>
@foreach ($auser as $res)
<?php $i += 1; ?>
<tr @if($i%2==0) class="bgcolor dihover" @endif class='showdet' class="dihover">
<td>{{ $res->id }}</td>
<td>{{ $res->name }}</td>
<td>{{ $res->email }}</td>
<td>
<a class="default-btn" href="/pms/admin/user/edit/{{ $res->id }}">Edit</a> |
<a type="submit" class="default-btn del" data-id="admin-user" href="pms/admin/user/delete/{{ $res->id }}">Delete</a>
</td>
</tr>
@endforeach
</tbody>
然后使用类选择器注册单击处理程序
$(document).ready(function () {
$('#detpanel').hide();
$(".showdet").click(function () { //use class selector here
$('#detpanel').slideDown(500);
});
$("#hidedet").click(function () {
$('#detpanel').slideUp(500);
});
$('#showdet').hover(function () {
$(this).divhover("background-color", "yellow");
});
});