0
注意:我加入这发现的jsfiddle在this link简化JQuery代码?
我已经写了一些基本的jQuery代码从3的一个表操纵行,处理几个按钮点击和复选框。我现在非常喜欢n00b。我正在研究这一点,并意识到有很多可以变成更通用的函数,但我不熟悉创建JS函数。任何指针都会受到欢迎。
由于我有类似的功能块,我宁愿讨论如何简化每个块类型。
- buttonSwap
- 选择/取消选取其余检查表
- 移动检查表
- 显示/隐藏面板
下面是代码:
<script type="text/javascript" language="javascript">
$(document).ready(function() {
$('#displayActivePanel').hide();
$('#displayInactivePanel').hide();
// Button event handlers to move items from/to differing tables...
$('#TableAdminPortfolio tbody .buttonSwap').live('click', function() {
var tr = $(this).closest('tr');
var stat = tr.children('.padLeft.status').text().trim();
var tableActiveProjects = $('#TableActiveProjects tbody');
var tableInactiveProjects = $('#TableInactiveProjects tbody');
tr.fadeOut(1000);
if (stat == 'Active') {
tableActiveProjects.prepend(tr);
} else {
tableInactiveProjects.prepend(tr);
}
tr.fadeIn(1000);
});
$('#TableActiveProjects tbody .buttonSwap').live('click', function() {
var tr = $(this).closest('tr');
var tableAdminPortfolio = $('#TableAdminPortfolio tbody');
tr.fadeOut(1000);
tableAdminPortfolio.prepend(tr);
tr.fadeIn(1000);
});
$('#TableInactiveProjects tbody .buttonSwap').live('click', function() {
var tr = $(this).closest('tr');
var tableAdminPortfolio = $('#TableAdminPortfolio tbody');
tr.fadeOut(1000);
tableAdminPortfolio.prepend(tr);
tr.fadeIn(1000);
});
$('#masterCheckBoxAdminPortfolio').live('change', function() {
var isChecked = $('#masterCheckBoxAdminPortfolio:checked').val() != undefined;
var list = $('#TableAdminPortfolio .CheckBoxProjects');
list.each(function() {
this.checked = isChecked;
});
});
$('#TableActiveProjectsCheckbox').live('change', function() {
var isChecked = $('#TableActiveProjectsCheckbox:checked').val() != undefined;
var list = $('#TableActiveProjects .CheckBoxProjects');
list.each(function() {
this.checked = isChecked;
});
});
$('#TableInactiveProjectsCheckbox').live('change', function() {
var isChecked = $('#TableInactiveProjectsCheckbox:checked').val() != undefined;
var list = $('#TableInactiveProjects .CheckBoxProjects');
list.each(function() {
this.checked = isChecked;
});
});
$('#TableAdminPortfolioRemoveAllChecked').live('click', function() {
var list = $('#TableAdminPortfolio .CheckBoxProjects');
list.each(function() {
var isChecked = $(this).closest('td').children('.CheckBoxProjects:checked').val() != undefined;
if (isChecked) {
var tr = $(this).closest('tr');
var stat = tr.children('.padLeft.status').text().trim();
var tableActiveProjects = $('#TableActiveProjects tbody');
var tableInactiveProjects = $('#TableInactiveProjects tbody');
tr.fadeOut(1000);
if (stat == 'Active') {
tableActiveProjects.prepend(tr);
} else {
tableInactiveProjects.prepend(tr);
}
tr.fadeIn(1000);
}
});
});
$('#TableActiveProjectsAddAllChecked').live('click', function() {
var tableAdminPortfolio = $('#TableAdminPortfolio tbody');
var list = $('#TableActiveProjects .CheckBoxProjects');
list.each(function() {
var tr = $(this).closest('tr');
var isChecked = $(this).closest('td').children('.CheckBoxProjects:checked').val() != undefined;
if (isChecked) {
tr.fadeOut(1000);
tableAdminPortfolio.prepend(tr);
tr.fadeIn(1000);
}
});
});
$('#TableInactiveProjectsAddAllChecked').live('click', function() {
var tableAdminPortfolio = $('#TableAdminPortfolio tbody');
var list = $('#TableInactiveProjects .CheckBoxProjects');
list.each(function() {
var tr = $(this).closest('tr');
var isChecked = $(this).closest('td').children('.CheckBoxProjects:checked').val() != undefined;
if (isChecked) {
tr.fadeOut(1000);
tableAdminPortfolio.prepend(tr);
tr.fadeIn(1000);
}
});
});
$('#showActivePanel').click(function() {
$('#displayActivePanel').show();
});
$('#hideActivePanel').click(function() {
$('#displayActivePanel').hide();
});
$('#showInactivePanel').click(function() {
$('#displayInactivePanel').show();
});
$('#hideInactivePanel').click(function() {
$('#displayInactivePanel').hide();
});
});
}
</script>
实际上,考虑到每个处理程序的大部分不同的事情,你可以做的事情并不多,以简化这一点。 – 2013-02-27 16:58:36
很难说没有看到html。底部的显示/隐藏可能可以改为切换功能。如果你可以做一个很好的http://jsfiddle.net。 – Jrod 2013-02-27 17:03:04
查看jsfiddle链接的问题顶部... – 2013-02-27 18:41:35