2016-01-18 88 views
9

Sto usando http://datatables.net/DataTable jquery evento click non funziona dopo l'impaginazione

<button class='btn btn-success activeAccount'>Activate Account</button> 

ho innescare chiamata AJAX su evento onclick, qui di seguito è il codice di chiamata AJAX:

$(".activeAccount").click(function() { 
    var intCounselorId = $(this).parent().parent().find('input[class="counselorId"]').attr("value"); 
    var intOwnerId = $(this).parent().parent().find('input[class="userID"]').attr("value"); 
    var strAction = 'activateAccount'; 
    performAction(intCounselorId, intOwnerId, strAction); 
}); 

function performAction(intCounselorId, intOwnerId, strAction) { 
    $.ajax({ 
     url: '/admin/counselormanagement/expertmanagementgridaction', 
     data: 'intCounselorId='+intCounselorId+'&intOwnerId='+intOwnerId+'&strAction='+strAction, 
     type: "POST", 
     async:false, 
     success: function(intFlag) { 
     if(intFlag == 1){ 
      location.reload(); 
     } 
     } 
    }); 
} 

Sto cercando di eseguire un evento onclick che funziona normalmente alla prima pagina, ma non appena vado a pagina 2 (o qualsiasi altra) smette di funzionare.

sto usando jQuery-1.10.2.min.js e 1.9.4 versione di DataTable

+2

Il pulsante '.activeAccount' all'interno del contenuto della tabella? Inoltre, si noti che è davvero una pratica sbagliata usare 'async: false', e' location.reload() 'nel gestore di successo annulla completamente l'intero punto di fare una richiesta AJAX in primo luogo. –

+0

sì, è sotto il contenuto della tabella –

+0

In tal caso è necessario utilizzare un gestore di eventi delegato, come per la risposta di @ squaleLis. Dovresti davvero sbarazzarti di 'async: false' e ​​il' location.reload() 'però. –

risposta

25

Poiché l'evento è collegato solo agli elementi esistenti.

Si dovrebbe cambiare per:

$("#tableId").on("click", ".activeAccount", function(){ 
    // your code goes here 
}); 

Continua a leggere nella documentazione di jQuery.on.

+1

Che bella risposta ... –

+0

@ sarower-jahan Grazie :) – squaleLis