2016-11-09 11 views
-1

Ein Grid-Header enthält alle Spaltennamen mit Kontrollkästchen, die letzte Spalte ist Re-Assign-Spalte mit Kontrollkästchen. Alle Zellen in der letzten Spalte enthalten Kontrollkästchen. Sobald ich das Kontrollkästchen in der Kopfzeile aktiviert habe, werden alle Checkboxen in dieser speziellen Spalte überprüft. Dazu habe ich jquery mit .live benutzt, das 100% perfekt funktioniert. Aber wenn ich.On anstelle von .Live verwenden möchte, funktioniert es nicht. Hier behalte ich den jquery Code und seine Bibliotheken. Bitte helfen Sie mir in dieser Ausgabe. Danke im Voraus.Jquery .On funktioniert nicht, wobei .live funktioniert

jquery für .live: $ ("# <% = rgCaseRM.ClientID%> input [id * = 'chkHeaderRM']: Checkbox"). Leben ("Klick", function() {

 var chkHeader = $(this); 
     $("#<%=rgCaseRM.ClientID%> input[id*='chkReAssign']").each(function (index) { 
      if (chkHeader.is(":checked")) { 
       $("td", $(this).closest("tr")).addClass("selected"); 
       $(this).attr('checked', true); 
       $("#<%=divRM.ClientID%>").show(); 
      } 
      else { 
       $(this).attr('checked', false); 
       $("td", $(this).closest("tr")).removeClass("selected"); 
       $("#<%=divRM.ClientID%>").hide(); 
      } 
     }); 
    }); 

$ ("# <% = rgCaseRM.ClientID%> input [id * = 'chkReAssign']: checkbox"). Live ("klick", funktion() { var grid = $ (this) .closest ("Tabelle"); var chkHeader = $ ("# <% = rgCaseRM.ClientID%> Eingabe [id * = 'chkHeaderRM']: Checkbox"); if (! $ (this) .is (": checked"))) { $ ("td", $ (this) .closest ("tr")). RemoveClass ("ausgewählt"); chkHeader.removeAttr ("markiert"); } sonst { $ ("td", $ (this) .closest ("tr")). AddClass ("ausgewählt"); if ($ ("[id * = chkReAssign]", Gitter) .length == $ ("[id * = chkReAssign]: checked", Gitter) .length) { chkHeader.attr ("checked", "checked "); } } var checkedCheckboxes = $ ("# <% = rgCaseRM.ClientID%> eingabe [id * = 'chkReAssign']: checkbox: checked"). Size();

 if (checkedCheckboxes > 0) { 
      $("#<%=divRM.ClientID%>").show(); 
     } 
     else { 
      $("#<%=divRM.ClientID%>").hide(); 
     } 
    }); 
+0

'.on ändern()' ist nicht nur ein Als Ersatz für '.live()' müssen Sie einen Selektor für ein übergeordnetes Element hinzufügen, um den Delegate Listener anzuhängen, wie @Aruna unten zeigt – jmoerdyk

Antwort

1

Um die unten 'live' auf 'on', zu ersetzen

$('selector').live('event', func); 

Sie haben dies als,

$(document).on('event', 'selector', func);