Try changing the "Event Scope" of the dynamic action.
It defaults to bind, I think you want live.
What is happening is that the page ties your event to the actual elements on the page when it loads. Then after selecting something the report gets refreshed (via AJAX) and the page receives brand new HTML content. That new content is NOT tied to the initial event, those elements are long gone.
BUT with a "live" scope the event is checked for the whole page "live" regardless of what changes. Hope this makes sense. It's a cool concept.