This way of passing parameters is just what I'd have chosen, but what about using `self.data('icon')` instead of `self.attr('data-icon')`?