Antes de marcar como duplicado, observei as seguintes perguntas e nada funcionou para mim.
O evento jQuery click requer um clique duplo para funcionar
Clique e clique duas vezes em disparo de evento (frouxamente realted)
Eu tenho um evento JQuery que requer um único clique em algumas instâncias e um clique duplo na maioria das outras.
Por favor, veja o violino https://jsfiddle.net/SimonPrice/6e9acbo6/5/
Neste violino, você verá uma precisãorepresentação dos dados, as funções disp e collapse não funcionam, por isso removi suas funções da janela javascript para evitar a distração dos alertas de pop-ups.
No violino, você verá uma tabela com uma tabela aninhada que possui tabelas aninhadas. (Código que eu herdei).
Usando este código
$(document).ready(function () {
$(document).on("click", ".up", function () {
shiftRow($(this));
});
$(document).on("click", ".down", function () {
shiftRow($(this));
});
});
Qual é a resposta proposta no primeiro link? Não consigo fazer isso funcionar e ainda estou tendo que clicar duas vezes.
Eu também tentei nos elementos de documento, tabela, tr e td, bem como no evento de clique de classe.
Preciso que isso funcione com um único clique e ficaria grato se alguém puder me ajudar a ver o erro que estou cometendo.
Respostas:
3 para resposta № 1Adicionei um log adicional à sua função:
function shiftRow(rowbObj) {
console.log("up or down arrow clicked");
var row = $(rowbObj).closest("tr");
console.log(row[0].rowIndex);
var thisTable = row.closest("table");
if ($(rowbObj).is(".up")) {
if (row[0].rowIndex > 0) {
console.log("current: "+row.text() + " prev: " +row.prev().text());
Por isso, me ajudou a perceber que você tem TR oculto adicional para o conteúdo da linha (provavelmente para expansão) - (
<tr id="content_0_36000" class="content" style="display: none;">
) Então, quando você clica uma vez, substitui entre o mostrado e o oculto, por isso parece que nada acontece