Finally I figured out the root cause:
Some parts of my JSP page are dynamically loaded in the client Side within iFrame , which cut my single JSP page into multiple JS context. The trigger and its related component fell into different JS context.
The fixing is simple, I just put them together.