Во-первых эта строка просто ужасна
var id_tops = '<?php echo $id;?>';
(это не ошибка но глаза режет) порекомендовал бы все переменные которые приходять с сервера назначить где-то вначале скрипта и в ф-циях использовать уже js-ые переменные. тоисть
<script>
var ID = parseInt('<?php echo $id;?>');
$(document).on('click','.visualp',function(e) {
//...
var id_tops =ID ;
//...
});
</script>
Вот а если по вопросу то можно сделать глобальную переменную и туда сохранять айди елемента на который нажали ну или какой-то другой уникальный атрибут ну или сам елемент и в фунции проверять если атрибут совпадает тогда ничего неделять и выходить. Как то так:
var currElClick = false;
$(document).on('click','.visualp',function(e) {
if (currElClick == $(this).attr('id')) return false;
currElClick = $(this).attr('id');
//Далее код ф-ции...
});