我正在尝试创建一个包含可以使用jQuery折叠和扩展的标题行的表.到目前为止,这是我的全部代码:
<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<link href="styles.css" rel="stylesheet" type="text/css" />
<script type="text/javascript">
$(document).ready(function() {
$("tr#cat1.header").click(function () {
$("tr#cat1.child").each(function() {
$(this).slideToggle("fast");
});
});
});
</script>
</head>
<body>
<table>
<tr id="cat1" class="header">
<td>Cat1</td>
<td>Row</td>
</tr>
<tr id="cat1" class="child">
<td>data1</td>
<td>data2</td>
</tr>
<tr id="cat1" class="child">
<td>data3</td>
<td>data4</td>
</tr>
<tr id="cat2" class="header">
<td>Cat1</td>
<td>Row</td>
</tr>
<tr id="cat2" class="child">
<td>data1</td>
<td>data2</td>
</tr>
</table>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
如果我是正确的,在英语jQuery的部分内容,如:"当被点击了'CAT1’和一类'头’的ID的行,发现有'CAT1’的id和一个类中的所有行"孩子",每个人都可以滑动."
然而,当我运行它并点击标题行时,没有任何反应.任何见解?
编辑:在HTML表中添加了第二个类别.对不起,我应该更具体一点.我希望能够单击特定类别的标题行,并且只有那些子行折叠,而不是页面上的所有子行.以这种方式,表表现得像"手风琴",并且行按类别分组.
我有一个复选框,设置如下:
<asp:CheckBox ID="myCheckbox" runat="Server" OnClick="showLoadingScreen(this.checked);" AutoPostBack="true" Text="Check me for more data!" />
Run Code Online (Sandbox Code Playgroud)
showLoadingScreen函数如下:
function showLoadingScreen(isChecked) {
if (isChecked)
{
document.getElementById('form1').style.display='none';
document.getElementById('img_loading').style.display='block';
}
else { return false; }
}
Run Code Online (Sandbox Code Playgroud)
我已经添加了else子句,希望我只能在复选框被选中后回复,但它会在任何一种情况下都回发.
我在页面上有一个网格(在form1内),在页面加载时加载了一组数据,但是为了向它添加一些额外的数据,我添加了这个复选框(它是一个运行时间较长的进程,所以我只想按需加载,而不是预先加载.当它被检查时,我想显示加载gif,回发,抓取数据,然后返回.如果取消选中该框,我不想做任何事情,因为在页面上留下足够多的数据是完全正常的(也就是说,预先显示的数据是选中复选框时显示的数据的子集).
是否有任何方法可以使复选框自动回复检查,但不是未选中?
编辑:使用Dark Falcon的建议,我修改了复选框,如下所示:
<asp:CheckBox ID="myCheckbox" runat="Server" OnClick="return showLoadingScreen(this.checked);" AutoPostBack="true" Text="Include HQ Values" />
Run Code Online (Sandbox Code Playgroud)
和javascript:
function showLoadingScreen(checked) {
alert(checked);
if (checked)
{
document.getElementById('form1').style.display='none';
document.getElementById('img_loading').style.display='block';
document.form1.submit(); //my own addition, to get it to post back
}
else { return false; }
}
Run Code Online (Sandbox Code Playgroud)
现在,它会在已检查时重新发布,但该框无法再取消选中.正如您所看到的,我添加了一个警报来显示传入的值.当您取消选中该框时,它会传递正确的值(false),但之后会以某种方式再次检查.
这不是一个大问题,因为没有理由取消选中该框(因为正如我之前所说,检查时数据集是未经检查的数据集的超集),但我仍然想知道它为什么这样做.有任何想法吗?
这个问题最好通过例子来问.假设我有一个名为"Car"的数据库表,其中包含以下列:
(制*,模型*,NumberOfDoors*,描述,价格,里程,颜色)
Make,Model和NumberOfDoors的3元组构成数据库中唯一的主键.我所做的是为每个订单项设置了一个"Car"类,但是如果我想以一个形式的汽车对象的集合
{(特别制作模型和门票,数量,当前销售额),......}
集合中每个项目的第一个元素是汽车的唯一类型,第二个是计数(我有多少类型),第三个元素是那个make-model-doorcount上的任何销售额,I'我遇到了数据结构的困境.
到目前为止我一直在做的是制作一个适合哈希表的结构,如下所示:
//This will be the unique key for the hashtable
dim uniqueID as String = myCar.make + "@" + myCar.model + "@" + myCar.doorCount
//This is the structure that will hold the perinent info about that unique
//car type
Structure inventory
Dim count as Integer
Dim currentSales as String
End Structure
Run Code Online (Sandbox Code Playgroud)
此时,我将继续从数据库表填充哈希表,其中哈希表的键是uniqueID字符串,值是"inventory"结构的实例.这是(在我看来)非常不优雅,尤其是哈希表的黑客攻击.对于具有由多个值组成的主键的对象,是否有更好的数据结构解决方案?
.net ×1
asp.net ×1
autopostback ×1
checkbox ×1
css ×1
html ×1
javascript ×1
jquery ×1
postback ×1
primary-key ×1