There are two ways to stop an event from bubbling.
Returning false from an event handler will automatically call event.stopPropagation() and event.preventDefault().
Or, probably more useful is to call
event.stopImmediatePropagation() in the event handler.
.off() you can pass only two arguments with the second being the handler function. JQ will assign appropriately and assign
undefined to the selector argument. That may or may not work depending on how you specified
You might also want to look into namespacing events as it can simplify specifying exactly which events you want to remove. For example (from the documentation)
// Delegate events under the ".validator" namespace $( "form" ).on( "click.validator", "button", validate ); // Remove event handlers in the ".validator" namespace $( "form" ).off( ".validator" );