Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

jhur

uma boa pratica em js

Recommended Posts

Boa tarde, eu tenho uma dúvida em relação ao javascript, não sei como explicar então mostrarei um exemplo

 

Tenho o seguinte codigo:

function Remove {

        RemoveTableRow = function(handler) {
            var tr = $(handler).closest('tr');

            tr.fadeOut(400, function(){ 
            tr.remove(); 
            }); 

            return false;
        };
    };  

e ela é carregada quando o site é carregado, funciona normal.

 

Porem tenho outra função que adiciona uma linha a tabela

function adiciona {
        AddTableRow = function() {

            var newRow = $("<tr class='tr-event'>");
            var cols = "";

            cols += '<th scope="row">novalinha</th>';
            cols += '<td><input class="input-table" value="20g"></td>';
            cols += '<td>nutrientes<input class="input-table" value="20g"></td>';
            cols += '<td><input class="input-table" value="20g"></td>';
            cols += '<td class="btn-opt"><a class="opt-tbl" data-toggle="modal" data-target=".bd-example-modal-lg"><i class="unhide icon"></i></a><a onclick="RemoveTableRow(this)" class="del-tbl"><i class="remove icon"></i></a></td>';
            cols += '<td class="btn-hide"></td>';
            cols += '</tr>';                

            newRow.append(cols);
            $(".table-ufv").append(newRow);

            return false;
        };
        };

Mas a linha nova que adicionei, não funciona o botao de excluir, pq a função que exclui é carregada antes, para resolver eu sei que posso chamar a função REMOVE dentro da função adiciona, para que ela seja executada novamente. Mas eu não sei se isso é o jeito certo, e se eu tiver uma função que vou precisar de outras funções, terei que chamar todas dentro dessa função??

 

Não me parece certo. Obs: as funções dadas no exemplo provavelmente não funcionam

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Jhur,

Ao meu ver não existe nenhum problema você chamar uma função X dentro de uma função Y (se é que entendi 100% da sua pergunta). Exemplo:

function primeira() {
   alert('Sou uma função');
}
function segunda() {
   primeira();
}

E o bom é que se você tiver que reutilizar a função de remover, é só chamar ela dentro das suas novas funções.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É exatamente essa minha pergunta e eu sempre faço assim, porem em determinados casos acaba ficando muitas funções X a serem chamadas dentro de uma Y, dependendo da complexidade do app em desenvolvimento.

 

Não acho isso muito elegante, por isso gostaria de saber se existia uma maneira mais elegante.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu acho que essa também é uma questão de opinião (apesar de ser técnica), pois até que acho elegante. Acho isso, pois não vou ter que criar a função toda dentro das demais funções. É bem melhor manter uma linha ocupada do que 10.

Quando os conteúdo são iguais ou semelhantes, você ainda consegue fazer um for, mas quando não, ai não vejo outra alternativa.

É a mesma coisa pra PHP ou algum framework (Laravel, CodeIgniter, Lumen...). Se você quer adicionar alguma view ou asset em alguma página, você pode criar um arquivo adicional e chamar através do include, ou this->load->view... Etc.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.