我想学习jQuery的最佳实践,以及如何避免代码重复并使用优雅的代码。
我写过:
<script type="text/javascript">
// Change the category name with the filter
$(function() {
// Featured
$('.featured').click(function() {
$('.categoryTitle h1').hide().html('Featured').fadeIn('slow');
});
// Web
$('.web').click(function() {
$('.categoryTitle h1').hide().html('Web').fadeIn('slow');
});
// Brand
$('.brand').click(function() {
$('.categoryTitle h1').hide().html('Brand').fadeIn('slow');
});
// Print
$('.print').click(function() {
$('.categoryTitle h1').hide().html('Print').fadeIn('slow');
});
// All
$('.all').click(function() {
$('.categoryTitle h1').hide().html('All').fadeIn('slow');
});
});
</script>
HTML
<ul id="filters">
<li><a class="featured" href="#" data-filter=".feature-this">Featured</a></li>
<li><a class="web" href="#" data-filter=".category-web">Web</a></li>
<li><a class="brand" href="#" data-filter=".category-brand">Brand</a></li>
<li><a class="print" href="#" data-filter=".category-print">Print</a></li>
<li><a class="all" href="#" data-filter="*">Show All</a></li>
</ul>
<div class="categoryTitle"> <h1>Featured</h1> </div>
这是否尽可能优雅,或者我错过了如何停止潜入DOM?
注意我使用的是Isotope,一个jQuery插件。
编辑目前没有任何答案正在更改categoryTitle,但我确实声明它的默认值为精选。
答案 0 :(得分:6)
这应该这样做:
<script type="text/javascript">
$(function() {
$('#filters').on('click', 'a', function() {
$('.categoryTitle h1').hide().html($(this).text()).fadeIn('slow');
});
});
</script>
答案 1 :(得分:1)
function change(id){
$('.categoryTitle h1').hide().html(id).fadeIn('slow');
}
答案 2 :(得分:1)
试试这个demo
<script type="text/javascript">
$(function() {
$('#filters').on('click', 'a', function() {
$(".categoryTitle").find("h1").hide().html($(this).text()).fadeIn('slow');
});
});
</script>
答案 3 :(得分:0)
这很简单:
$('#filters a').click(function() {
$('.categoryTitle h1').hide().html($(this).text()).fadeIn('slow');
});
答案 4 :(得分:0)
$(document).ready(function(){
$('ul#filters li a').click(function(){
$('.categoryTitle h1').hide().html($(this).text()).fadeIn('slow')
});
});