$(function () {
var fibonacci = _.memoize(function(n) {
return n < 2 ? n: fibonacci(n - 1) + fibonacci(n - 2);
});
var buttonView = {
onClick: function(elem){
var id = elem.toElement.getAttribute("id");
var c = elem.toElement.getAttribute("data-fibo");
var tar = document.getElementById(id);
var result = document.createTextNode( '=' + fibonacci(c) );
return tar.appendChild(result);
}
};
_.bindAll(buttonView, 'onClick');
var btn = document.querySelectorAll(".trigger");
for(var i = 0, il = btn.length; i < il; i++) {
btn[i].addEventListener('click', buttonView.onClick, false);
}
});
<p>_.memoize Practice</p>
<div id="wrapper">
<ol>
<li class="btn"><a href="#" class="trigger" data-fibo="7" id="b1">fibonacci(7)</a></li>
<li class="btn"><a href="#" class="trigger" data-fibo="8" id="b2">fibonacci(8)</a></li>
</ol>
</div>
p, div {
margin: 20px 20px 0px;
clear:both;
}
div.trigger2{
color:red;
}
External resources loaded into this fiddle: