There are two possible reasons for a rule to fire inconsistently:
Does the event action incite a link to load? If so, the rule may not have enough time to fire before the new page loads. You need to check the box within the rule identifier indicating Delay link activation. This keeps the activated link from loading until the rule has fired.
If the event does not incite a new page load, then there may be an issue with bubbling. If the event action can occur on a child / parent item, ensure the button indicating Allow events on child elements to bubble is checked. This ensures that the rule fires whether or not the user interacts with the child / parent element.