一般化しようとしている無名関数の 1 つのインスタンスの例
$('.FFEC-Display').each(function(i, el){
var title = $(el).find('h3').text().replace(blacklistRegexp, '').trim();
/* you can ignore the code in here
var tomato = findTomato(title, tomatoes);
var classes = ["poster-width", "overlay"];
var templateData = tomato ? prepareData(tomato, classes) : { query: title, classes: namespaceClasses(classes) };
*/
$(el).find('.movie-link').prepend(Handlebars.templates.ratings(templateData));
});
別の例を次に示します。
$('.MovieItemsRotator .item').each(function(i, el){
var title = $(el).find('.Title').text().replace(blacklistRegexp, '').trim();
/* you can ignore the code in here
var tomato = findTomato(title, tomatoes);
var classes = ["overlay", "overlay-poster"];
var templateData = tomato ? prepareData(tomato, classes) : { query: title, classes: namespaceClasses(classes) };
*/
$(el).prepend(Handlebars.templates.ratings(templateData));
});
私はこれらのインスタンスをあと 3 つ持っています (さらに追加する予定です)。それらはすべて非常に似ていますが、DRY-er 関数を作成しようとするときにかなりの頭痛の種になるほど異なっています。
Git Repoの完全なコード
edit-addition:主な問題の1つ
は最後の部分です。$(el).prepend
$(el).append
$(el).after
$(el).find('something').prepend
$(el).closest('something').prepend/append/after