我试图概括的一个匿名函数实例的一个例子
$('.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));
});
我还有三个这样的实例(计划添加更多),它们都非常相似,但不同之处足以让我在尝试创建 DRY-er 函数时非常头疼。
Git Repo上的完整代码
编辑加法:
主要困难之一是最后一部分,有时我想做$(el).prepend
,有时$(el).append
,或$(el).after
,或$(el).find('something').prepend
,或$(el).closest('something').prepend/append/after