use on function instead of bind and live