我有一个简单的功能,可以在用户点击链接时显示和隐藏元素。
目前设置如下:
$('div.box table a').click(function (e) {
stopEvent(e);
var self = $(this);
if ($("#" + self.text()).css('display', 'none')) {
$("#" + self.text()).show('slow');
return;
}
else if ($("#" + self.text()).css('display', 'table-row')) {
$("#" + self.text()).hide();
return;
}
});
所以基本上,如果用户点击链接,我会得到具有ID的表格,该ID是链接的文本。我还检查tr的“显示”标签,以确定我是应该显示还是隐藏。
可悲的是,因为所有的地狱和隐藏都不起作用,所以它是错误的。
感谢任何帮助!
编辑:Html部分,按要求:
<% bool even = true;
foreach (var item in ViewBag.NefList)
{%>
<tr <%: even? "class=even" : "" %>>
<td><%: Html.ActionLink(item.Artno, "action", new { artno = item.Artno, week = ViewBag.Week, projectID = item.projectID })%></td>
<td><%: item.projectName%></td>
<td><%: item.qty%></td>
<td><%: item.totalStock%></td>
<td><%: item.Description%></td>
</tr>
<tr <%: even? "class=even" : "" %> style="display: none" id ="<%: item.Artno %>"> <td>Hello</td></tr>
<% even = !even;
} %>
</table>
答案 0 :(得分:2)
您的检查中有错误,以确定该元素是否可见。切换方法将为您解决此问题。
$('div.box table a').click(function (e) {
var self = $(this);
e.preventDefault
$("#" self.text()).toggle('slow');
});
答案 1 :(得分:0)
试试这个,
else if ($("#" + self.text()).css('display', 'block')) {
$("#" + self.text()).hide();
return;
}
答案 2 :(得分:0)
使用
if ($("#" + self.text()).is(':visible')) {
检查元素是否可见。并采取相应行动。
在类似的说明中,您可以使用.toggle()
方法使用jQuery显示/隐藏元素。