Estou desenvolvendo um projeto (página) com uma widget que permite ao usuário anexar documentos, para tal, até mesmo a estrutura de pastas é criada dinamicamente. Estou tendo problemas, pois para alguns usuários, algumas funções dentro do código são executadas várias vezes, porém no código ela é chamada somente no click do botão. Realizando o mesmo teste não acontece na minha maquina, mesmo estando na mesma versão do Chrome e do Windows. Tentei usar ev.stopPropagation(), mas sem sucesso. Como um pequeno exemplo, deixo um trecho de código que deveria abrir o documento, caso o usuário clique duas vezes sobre o referido:
}).on('dblclick', function (ev) {
ev.stopPropagation();
var index = that.table_fornecedor.selectedRows()[0];
var selected = that.table_fornecedor.getRow(index);
if (selected.txtStatusDocumento != 'Inexistente') {
_this.abrirDocumento(selected.txtIdDocumento);
}
else {
FLUIGC.toast({
title: '',
message: "Documento Inexistente",
type: 'warning',
timeout: 6000
});
}
Função para abrir o documento:
abrirDocumento: function (param) {
try {
var identificacao = param;
$.ajax({
url: '/api/public/2.0/documents/getDownloadURL/' + identificacao,
type: "GET",
async: false,
}).fail(function (retorno) {
FLUIGC.toast({
title: '',
message: "Erro ao tentar abrir o documento.",
type: 'warning',
timeout: 6000
});
}).error(function (retorno) {
FLUIGC.toast({
title: '',
message: "Erro ao tentar abrir o documento",
type: 'warning',
timeout: 6000
});
}).done(function (data) {
var retorno = data;
window.open(retorno.content);
});
} catch (error) {
_this.modalInformativa('ERROR', 'Erro na função "abrirDocumento" : ' + error);
}
}
Chega a acontecer de abrir mais de 5 abas do navegador com o documento, sendo que foi clicado somente 1 vez.
Alguém já passou por isso ou sabe como melhorar?