Dynamic Equations in MathJax

Expand the following: $$ \require{action} \def\longest{x(x+1) + 1(x+1)} \def\click{\rlap{\enclose{roundedbox}{\small\text{next step}}}\hphantom{\longest}} \def\={\phantom{{}={}}} (x+1)^2 \toggle {\begin{aligned}[t]& = \click\end{aligned}} {\begin{aligned}[t]& = (x+1)(x+1)\\[3px]&\=\click\end{aligned}} {\begin{aligned}[t]& = (x+1)(x+1)\\[3px]& = x(x+1) + 1(x+1)\\&\=\click\end{aligned}} {\begin{aligned}[t]& = (x+1)(x+1)\\[3px]& = x(x+1) + 1(x+1)\\[3px]& = (x^2+x) + (x+1)\\[3px]&\=\click\end{aligned}} {\begin{aligned}[t]& = (x+1)(x+1)\\[3px]& = x(x+1) + 1(x+1)\\[3px]& = (x^2+x) + (x+1)\\[3px]& = x^2 + (x + x) + 1\\[3px]&\=\click\end{aligned}} {\begin{aligned}[t]& = (x+1)(x+1)\\[3px]& = x(x+1) + 1(x+1)\\[3px]& = (x^2+x) + (x+1)\\[3px]& = x^2 + (x + x) + 1\\[3px]& = x^2 + 2x + 1\end{aligned}} \endtoggle $$