в jQuery есть метод .unbind(). unbind - отвязать (событие). если передадим имя события, или несколько, то отключаются указанные события. вот я чуть переделал, а дальше я думаю Вы сами поймете, а если не поймете то обращайтесь я расскажу подробней как оно работает
$('p').on("mouseenter mouseleave click",function(event){
    var elem = $(this), evt = {
        mouseenter:function(){
            $(elem).css("margin-left","10px");
        }, mouseleave:function(){
            $(elem).css("margin-left",0);
        }, click:function(){
            $('p').not(elem).css("color","green");
            $('p').unbind(); // отключает все события у всех элементов p
        }
    }
    evt[event.type]();
});