WebHU - Programozási kérdések és válaszok

Az első kattintásra nem jelenik meg a megerősítési mód

Ehhez kell egy kis segítség. Egy törlési képre kattintok, amely az egyik sor cellájában található. Miután rákattintottam a törlési képre, egy modális megerősítést kérő mezőnek kell megjelennie, amely a sor törlésének megerősítését kéri. Nos, a funkció működik, de a modális megerősítő mező nem jelenik meg első kattintásra a kép törlésére, de megjelenik a második kattintásra. A console.log-ot írtam, amikor a képre kattintanak - minden alkalommal naplózza, amikor a képekre kattintanak - De a megerősítő mező nem jelenik meg először. A megerősítő doboz logikája nélkül, ha a kép törlésére kattintok, a sor csak az első kattintásra törlődik.

Íme a kód:

$('#example.display tbody tr td img#delete').live('click', function(){
  console.log("Delete clicked");

  var oTable = $('#example').dataTable();
  var nRow = $(this).closest("tr").get(0);
  var aData = oTable.fnGetData(nRow);

  ("#DeleteConfirmationModalWindow").html('<h6>'+'Are you sure you wish to delete order:'+'<br />'+aData[0]+'?'+'</h6>');
  $("#DeleteConfirmationModalWindow").dialog('open');

  $("#DeleteConfirmationModalWindow").dialog({
      title: "Delete Confirmation",
      autoOpen: false,
      dialogClass: "DeleteConfirmationModalWindow",
      closeOnEscape: false,
      draggable: false,
      width: 400,
      height: 200,
      modal: true,
      buttons: {
            "Yes, I'm sure": function() {
                $( this ).dialog( "close" );
                console.log("Delete");
                deleteDatabaseRow(oTable, nRow);    
                oTable.fnDeleteRow(nRow);
            },
            Cancel: function() {
                $( this ).dialog( "close" );
                console.log("No delete");
            }
        },
    resizable: false,
    open: function() {
              $('body').css('overflow','hidden');
          },
    close: function() {
              $('body').css('overflow','auto');
          }
    });                     
});

Kérem, segítsen! Kösz!

16.07.2012

Válaszok:


1

Hiba van a kódodban. A párbeszédpanel létrehozása előtt hívja a következőt: $("#DeleteConfirmationModalWindow").dialog('open');.

Először távolítsa el a $("#DeleteConfirmationModalWindow").dialog('open'); elemet és a autoOpen: false opciót, és tudassa velem, hogy működik-e vagy sem.

A .live elavult, ha jQuery 1.4+ verziót használ, lásd itt. Egyszerűen használja helyette az .click-t.

16.07.2012
  • Ahogy Mordhak mondta, akkor hívja meg a párbeszédpanelt, mielőtt még létezne, így semmi sem fog történni. A .live() függvényen kívül kell elhelyezni. A .live() helyett használhatja a .on() értéket is. 16.07.2012
  • Köszönjük Mordhak az újrajátszást! Elnézést, elfelejtettem megemlíteni, hogy ez a DeleteConfirmationModalWindow szerepel az egyik .jsp fájlban. BTW, az adattábla újrainicializálása segített megoldani ezt a hibát. Köszönöm mégegyszer! 16.07.2012
  • Új anyagok

    A rádiógomb ellenőrzött eseményének használata a jQueryben
    Ebben a cikkben látni fogjuk, hogyan kell dolgozni a jquery választógombbal ellenőrzött eseményeivel. A választógombok HTML gombok, amelyek segítenek kiválasztani egyetlen értéket egy csoportból...

    Körkörös függőségek megoldása terraformban adatforrásokkal – lépésről lépésre
    Mi az a körkörös függőségek Dolgozzunk egy egyszerű eseten, amikor az SQS-sor és az S3-vödör közötti körkörös függőség problémája van egy egymástól függő címkeérték miatt. provider..

    Miért érdemes elkezdeni a kódolást 2023-ban?
    01100011 01101111 01100100 01100101 — beep boop beep boop Világunk folyamatosan fejlődik a technológia körül, és naponta fejlesztenek új technológiákat a valós problémák megoldására. Amint..

    🎙 Random Noise #2  – Örökbefogadás és hit
    az analitika íratlan világának gondozása Szeretné, hogy ezek a frissítések a postaládájába kerüljenek? Iratkozzon fel itt . "Ha önvezető autókat gyártanak, akkor mi miért ne..

    A legrosszabb politika és prediktív modellek májátültetésre jelöltek számára az Egyesült Államokban
    A máj (vagy óangolul lifer) az emberi test legnehezebb belső szervére utal, amely csendesen működik a nap 24 órájában. Mit csinál a máj? 500 feladatot hajt végre a szervezet egészségének..

    5 webhely, amely 2022-ben fejleszti front-end fejlesztői készségeit
    Frontendmentor.io A tényleges projektek létrehozásával a Frontendmentor.io segítséget nyújt a front-end kódolási képességeinek fejlesztésében. A kódolást azután kezdheti meg, hogy..

    Mikor kell használni a Type-t az interfészhez képest a TypeScriptben?
    A TypeScript a JavaScript gépelt szuperkészlete, amely statikus gépelést ad a nyelvhez. Ez megkönnyíti a robusztus és karbantartható kód írását azáltal, hogy a hibákat a fordítási időben..