2014-01-16 339 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