我在页面中使用Jquery来隐藏我不想显示的按钮,除非需要。在这种情况下,它有一个有几行的表我隐藏删除按钮,除非我选择要删除的行...同样我隐藏控制行操作的按钮,直到有多行。我使用以下代码。
jQuery(document).ready(function() {
if (jQuery(tableId).find("input[type='checkbox']").length == 1) {
jQuery(headerCheckbox).hide();
jQuery(removeButtonId).hide();
jQuery(upButtonId).hide();
jQuery(downButtonId).hide();
} else if (jQuery(tableId).find("input[type=checkbox]:checked").length == 0) {
jQuery(removeButtonId).hide();
jQuery(upButtonId).hide();
jQuery(downButtonId).hide();
jQuery(headerCheckbox).click(function() {
jQuery(tableId).find("input[type='checkbox']").attr('checked', jQuery(headerCheckbox).is(':checked'));
});
}
jQuery(tableId).find("input[type='checkbox']").each(function() {
if (jQuery(this).attr('id') != headerCheckbox) {
jQuery(this).click(function() {
if (jQuery(headerCheckbox).is(':checked')) {
if (jQuery(tableId).find("input[type=checkbox]:checked").length != 1) {
jQuery(removeButtonId).show();
if (rowCount > 1) {
jQuery(upButtonId).show();
jQuery(downButtonId).show();
}
} else if (jQuery(tableId).find("input[type=checkbox]:checked").length > 0) {
jQuery(removeButtonId).show();
if (rowCount > 1) {
jQuery(upButtonId).show();
jQuery(downButtonId).show();
}
} else {
jQuery(removeButtonId).hide();
jQuery(upButtonId).hide();
jQuery(downButtonId).hide();
}
}
});
}
});
});
这段代码没有
if (rowCount > 1) {
jQuery(upButtonId).show();
jQuery(downButtonId).show();
}
适用于删除按钮,但是当我添加此行时,行为会变得混乱,只有在选择了全部选项时才有效...
为了解释所使用的变量,大多数只是ID来自那里的相应元素...除了rowcount,这是一个由其他代码生成的数字...我在chrome(Firebug)中检查并且数字生成正确。但是,当我点击选择所有其他时间它不起作用时,代码似乎仍然有效,而且当未选择时隐藏不再有效,...我哪里出错了?
答案 0 :(得分:1)
我认为你在第一个if(rowCount> 1)上缺少一个右括号,它应该是这样的:
jQuery(tableId).find("input[type='checkbox']").each(function() {
if (jQuery(this).attr('id') != headerCheckbox) {
jQuery(this).click(function() {
if (jQuery(headerCheckbox).is(':checked')) {
if (jQuery(tableId).find("input[type=checkbox]:checked").length != 1) {
jQuery(removeButtonId).show();
if (rowCount > 1) {
jQuery(upButtonId).show();
jQuery(downButtonId).show();
} // <----This one was missing
}
} else if (jQuery(tableId).find("input[type=checkbox]:checked").length > 0) {
jQuery(removeButtonId).show();
if (rowCount > 1) {
jQuery(upButtonId).show();
jQuery(downButtonId).show();
}
} else {
jQuery(removeButtonId).hide();
jQuery(upButtonId).hide();
jQuery(downButtonId).hide();
}
}
});
}
});
那个缺失的大括号肯定会引起一些奇怪的问题。