1

ich ein Neuling bin und habe ein Problem, das einige Haarausfall verursacht hat .. Verzeihen Sie mir, wenn diese einfache oder eine dumme Frage scheint ..Javascript Rückruf Verwirrung

I Tables bin mit Zeilendaten angezeigt werden, in der letzten Spalte auf der rechten Seite haben 2 Bilder, eines zum Bearbeiten und eines zum Löschen. Um zu stoppen verwenden das Click-Ereignis I:

$('#datatable tbody tr a.delete img').live('click', function() { 
     }); 

Ein Freund (der zur Zeit aus der Stadt ist) gab mir den Code zu versuchen ..

function fancyAlert(msg) { 
     jQuery.fancybox({ 
     'modal' : true, 
     'content' : "<div style=\"margin:1px;width:240px;\">"+msg+"<div style=\"text-align:right;margin-top:10px;\"><input style=\"margin:3px;padding:0px;\" type=\"button\" onclick=\"jQuery.fancybox.close();\" value=\"Ok\"></div></div>" 
     }); 
    } 

    function fancyConfirm(msg,callback) { 
     var ret; 
     jQuery.fancybox({ 
      modal : true, 
      content : "<div style=\"margin:1px;width:240px;\">"+msg+"<div style=\"text-align:right;margin-top:10px;\"><input id=\"fancyConfirm_cancel\" style=\"margin:3px;padding:0px;\" type=\"button\" value=\"Cancel\"><input id=\"fancyConfirm_ok\" style=\"margin:3px;padding:0px;\" type=\"button\" value=\"Ok\"></div></div>", 
      onComplete : function() { 
       jQuery("#fancyConfirm_cancel").click(function() { 
        ret = false; 
        jQuery.fancybox.close(); 
       }) 
       jQuery("#fancyConfirm_ok").click(function() { 
        ret = true; 
        jQuery.fancybox.close(); 
       }) 
      }, 
      onClosed : function() { 
       callback.call(this,ret); 
      } 
     }); 
    } 

    function fancyConfirm_text() { 
     fancyConfirm("Ceci est un test", function(ret) { 
     alert(ret) 
     }) 
    } 

Welche funktioniert, wenn ich es verwenden wie:

`$('#datatable tbody tr a.delete img').live('click', function() { 

    if (!fancyConfirm("Are you sure you want to delete this record?")) 
      e.preventDefault(); 

});` 

ich bin verwirrt über den Callback-Teil, weil, wenn ich auf „Abbrechen“ die Box geht weg, aber die Seite ist noch grau hinterlegt und gesperrt. Was ich tun möchte, ist, wenn der Benutzer auf Abbrechen klickt, um zu beenden und zum normalen zurückzugehen, und wenn der Benutzer auf "OK" klickt, dann muss ich var rowID an eine Datei "delete_row.php" übergeben ... Aber das ist Neuland für ich .. Wenn es ein einfacher HTML-Link war, kann ich die .val bekommen und getan werden, aber in DataTables habe ich diese Option nicht ..

Kann mir hier jemand in die richtige Richtung zeigen? Ich habe dies zu Tode gegoogelt, bin aber nicht in der Lage, Informationen über meine Nutzungsvoraussetzungen zu finden.

+0

Was machen Sie in Ihrer href des Anker-Tag haben? – PseudoNinja

+1

Während ich keine Zeit habe, Ihnen zu helfen, wollte ich nur darauf hinweisen, dass Sie sich nicht entschuldigen müssen. Wir sind alle hier, um allen Programmierern aller Erfahrungsstufen zu helfen. :) – Mantar

Antwort

1

Die fancyConfirm Funktion erwartet Callback-Funktion, wenn nicht gegeben ist Fehler in dem fancybox onclosed Ereignisse, das könnte erklären, warum es grau bleiben.

Versuchen Sie, den Anruf an sich ändernde:

fancyConfirm("Are you sure you want to delete this record?", function(ret) { }) 
+0

Das hat funktioniert! danke .. und ich verstehe, was ich vermisst habe, so ist es ein Doppelbonus .. :) – Dennis

+0

Sorry, wusste nicht, dass ich das bis jetzt tun musste .. lol Nochmals vielen Dank! – Dennis

+0

@Dennis kein Problem, so funktioniert dieser Platz - froh, dass du auch Antworten auf deine anderen Fragen akzeptiert hast. :) –