Событие click в вашем примере прикреплено к #sidebar
, и если вы вернете false из обработчика, оно не будет распространяться дальше по дереву DOM.
Вот пример скрипки: http://jsfiddle.net/QymkW/
Это одна из причин недавнего изменения синтаксиса для делегирования события. С использованием синтаксиса .live()
можно подумать, что событие было присоединено к элементу, который вы передаете в цепочке, но это всегда было document
. Это сбивало с толку с точки зрения распространения.
Используя синтаксис .on()
, вы теперь рисуете лучшую картину того, что на самом деле происходит. Событие присоединяется к переданному элементу, и затем вы можете добавить второй аргумент, если хотите делегировать события от потомков. Таким образом, распространение «должно» произойти между делегированными потомками и элементом для делегирования, чтобы работать, но вы все равно можете предотвратить образование пузырьков от элемента, который прикрепил событие (в вашем случае #sidebar
)