This is because the elements receive when the page loads, and the event handler is connected at that moment, changing the class later does not remove the event handler.
The solution is to either check the class inside the event handler
$(".changer").on("click", function(){
if ( ! $(this).hasClass('open') ) {
$(this).addClass("open");
alert("passed");
}
});
, jQuery one(), .