You should use label. Its there for a reason. Also, When you click the checkbox, it checks the checkbox (the default functionality), but the event is propagated to Outerdiv and thus your function toggles it and you see no change
–
JashwantMar 1 '13 at 20:06

take a look at <a href="stackoverflow.com/questions/426258/… do I check a checkbox with jQuery or JavaScript?</a> which says to use .prop() to jQuery 1.6+ and use .attr() to jQuery 1.5 and below
–
koroguiMar 1 '13 at 20:20