Added back the preventDefault() — this handler is attached to both buttons and anchors.
Cleaned up two event handlers.

FWIW, set()ing the views attribute didn't do anything because the views array was being manipulated in-place. Set() is clever enough to check that changes actually happen before triggering change events. In this case it was a no-op, so I removed it. The alternative to this patch would've been to take a deep copy of the views array, manipulate it, then do a set().
Only trigger change:views when they actually changed.
Merge branch 'master' into gh-pages