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