1
ここ
は私の関数である。このjQuery関数をどのようにクリーンアップしてより柔軟にすることができますか?
function DisplayGridElementsBasedOnCriteria(dataItem, propertyToEvaluate, shouldEqualvalue, selectorsToChange, hideSelectedElements, nameOfColumnContainingElements) {
if (propertyToEvaluate == shouldEqualvalue) {
var $row = $(dataItem.row);
if (nameOfColumnContainingElements == undefined) {
if (hideSelectedElements) {
$row.children("td").children(selectorsToChange).hide();
}else {
$row.children("td").children(selectorsToChange).show();
}
} else {
$.each($row.children("td"), function (index, column) {
var $column = $(column);
var $headerText = $column.closest('table').find('th').eq($column.index()).children(".t-link").text();
if ($headerText == nameOfColumnContainingElements) {
if (hideSelectedElements) {
$column.children(selectorsToChange).hide();
} else {
$column.children(selectorsToChange).show();
}
}
});
}
}
}ように使用されている
:私はjQueryの/ JavaScriptのでは非常に良好ではないですし、それはように動作します
<script type="text/javascript">
function onRowDataBound(e) {
DisplayGridElementsBasedOnCriteria(e, e.dataItem.Status, "Submitted", "a.t-grid-delete, a.t-grid-Edit", true, "Actions");
}
</script>
Iほんの少し複雑で肥大しているようです。
誰でももっとクリーンアップ版を提供できますか?掃除用として
function DisplayGridElementsBasedOnCriteria(dataItem, propertyToEvaluate, shouldEqualvalue, selectorsToChange, hideSelectedElements, nameOfColumnContainingElements) {
if (propertyToEvaluate === shouldEqualvalue) {
var $row = $(dataItem.row);
if (nameOfColumnContainingElements === undefined) {
$row.children("td").children(selectorsToChange).toggle(!hideSelectedElements);
}
else {
$row.children("td").each(function (index, column) {
var $column = $(column),
$headerText = $column.closest('table').find('th').eq($column.index()).children(".t-link").text();
if ($headerText === nameOfColumnContainingElements) {
$column.children(selectorsToChange).toggle(!hideSelectedElements);
}
});
}
}
}
私の例に関連してチェーンバールとはどういう意味ですか、どこに適用しないのですか? – SventoryMang
@DOTang: 'var $ column'と' var $ headerText'を組み合わせることができます。 – pimvdb
おかげさまで、2番目の部分を取り除きました。本当に別の質問ですが、これは非常に役に立ちました! – SventoryMang