2014-01-16 147 views
0

我目前正在使用jquery.appear插件(https://github.com/morr/jquery.appear/),这非常棒!jquery.appear通过数据循环

我有一个问题,每当我向页面添加一个新元素时,我必须为该元素编写一段新代码。我的代码中多次重复以下内容,所有更改都是元素的ID。

$('#page2 .wrapper').appear(); 


$('#page2 .wrapper').on('appear', function(event, $all_appeared_elements) { 
    $('#page2n').css('font-weight','bold'); 
    }); 

$('#page2 .wrapper').on('disappear', function(event, $all_appeared_elements) { 
    $('#page2n').css('font-weight','normal'); 
    }); 

是否有更自动的方式来做到这一点?以上将始终如一。我尝试了以下方法,但我没有成功:

$(".screensize").each(function() { 

    var getid = '#'+$(this).attr('id'); 
    //alert('#'+$(this).attr('id')); 


$(getid+' .wrapper').appear(); 

$(getid+' .wrapper').on('appear', function(event, $all_appeared_elements) { 
    $('#page2n').css('font-weight','bold'); 
    }); 

$(getid+' .wrapper').on('disappear', function(event, $all_appeared_elements) { 
    $('#page2n').css('font-weight','normal'); 
    }); 


}); 

不确定上述方法是否正确?

编辑:

我现在有下面的代码,它仅适用于我的元素之一:

$(".screensize").each(function() { 

    var getid = '#'+$(this).attr('id'); 


$(getid).appear(); 


$(getid).on('appear', function() { 

    $(getid+'n').addClass('active'); 

}); 


$(getid).on('disappear', function() { 

    $(getid+'n').removeClass('active'); 

}); 

拆除消失的功能,使各个环节活跃,但随后明显他们不会被删除。

回答

0

不确定,你的内容的目的是什么。但是,您还可以为所有新ID的出现添加CLASS。

也,下面的代码应该工作:

$(".screensize").each(function() { 

    var getid = '#'+$(this).attr('id'); 
    //alert('#'+$(this).attr('id')); 


$(getid+' .wrapper').appear(); 

$(getid+' .wrapper').on('appear', function(event, $all_appeared_elements) { 
    $(getid + 'n').css('font-weight','bold'); 
    }); 

$(getid+' .wrapper').on('disappear', function(event, $all_appeared_elements) { 
    $(getid + 'n').css('font-weight','normal'); 
    }); 


}); 
+0

谢谢,我已经编辑我的问题,你我的问题是没有什么了吧?谢谢! – danyo

+0

你也可以发布你的HTML部分。或创建一个jsfiddle? – STEEL