Somehow I managed to fixed it by changing the update() method to setContent() method like this
var objeto = Layerpints._layers;
for(r in objeto){
var html = Layerpints._layers[r]._popup._content;
var html_parse = $.parseHTML(html);
var up_tick = $(html_parse).find('.up_tick');
}
$(up_tick).each(function(e){
var id_pint_name = $(this).attr('name');
if(id == id_pint_name){
if($(this).hasClass('text-info')){
$(this).removeClass('text-info');
Layerpints._layers[r]._popup.setContent();
}else{
$(this).addClass('text-info');
Layerpints._layers[r]._popup.setContent();
}
}else{
console.log("do nothing");
}
});
the truth is I don't know why this is working since I believed setContent() will empty my popUp but it didn't, perhaps someone could explain further, thanks
var htmlNode = $("<div class='one'>Some HTML</div>")[0],
popup = L.popup().setContent(htmlNode); // Directly assign an HTML Element as content.
var marker = L.marker([51.441767, 5.470247],{
draggable: true
}).addTo(map).bindPopup(popup);
// Whatever selection method.
document.getElementById("button").addEventListener("click", function () {
var $popup = $(popup.getContent()); // Retrieve the HTML Element.
$popup.toggleClass("one"); // Manipulations on the original HTML Element will be kept in the popup closure and reflected at future openings.
});