簡單:
function toggle(all) {
$('.all-projects').toggle(all);
$('.my-projects').toggle(!all);
}
$('.btn-my-projects').click(function() {
toggle(false);
});
$('.btn-all-projects').click(function() {
toggle(true);
});
如果你想獲得更簡潔:
function makeClickHandler(all) {
return function() {
$('.all-projects').toggle(all);
$('.my-projects').toggle(!all);
};
}
$('.btn-my-projects').click(makeClickHandler(false));
$('.btn-all-projects').click(makeClickHandler(true));
或者,你可以採取完全不同的方法,並把它與按鈕顯示&皮鏈接使用HTML5 data-*
屬性將其分成標記。事情是這樣的:
<button class="project-control" data-show=".all-projects">
Show all projects
</button>
<button class="project-control" data-show=".my-projects">
Show my projects
</button>
<div class="project all-projects">...</div>
<div class="project my-projects">...</div>
用JavaScript這樣的:
$('.project-control').on('click', function() {
var showSelector = $(this).data('show');
$('.project').hide();
$(showSelector).show();
});
注:在真實頁面中,您可能需要緩存選定的元素。
對我來說,這不像原來的文章那樣可讀。它需要兩個搖頭。 – JonH
@JonH「搖頭?」 –
我可以閱讀並理解它,但我不確定它是否用於編寫較少代碼的目的。仍然是迄今爲止最好的答案IMO – robdodson