Confirm pagination in datatable

by protasovams

HTML

<script src="http://datatables.net/download/build/jquery.dataTables.nightly.js"></script>
<link rel="stylesheet" href="http://live.datatables.net/media/css/demo_table.css">
<div id="container">
     <h1>Live example</h1>

    <table cellpadding="0" cellspacing="0" border="0" class="display" id="example">
        <thead>
            <tr>
                <th>Rendering engine</th>
                <th>Browser</th>
                <th>Platform(s)</th>
                <th>Engine version</th>
                <th>CSS grade</th>
            </tr>
        </thead>
        <tbody>
            <tr class="odd gradeX">
                <td>Trident</td>
                <td>Internet Explorer 4.0</td>
                <td>Win 95+</td>
                <td class="center">4</td>
                <td class="center">X</td>
            </tr>
            <tr class="even gradeC">
                <td>Trident</td>
                <td>Internet Explorer 5.0</td>
                <td>Win 95+</td>
                <td class="center">5</td>
                <td class="center">C</td>
            </tr>
            <tr class="odd gradeA">
                <td>Trident</td>
                <td>Internet Explorer 5.5</td>
                <td>Win 95+</td>
                <td class="center">5.5</td>
                <td class="center">A</td>
            </tr>
            <tr class="even gradeA">
                <td>Trident</td>
                <td>Internet Explorer 6</td>
                <td>Win 98+</td>
                <td class="center">6</td>
                <td class="center">A</td>
            </tr>
            <tr class="odd gradeA">
                <td>Trident</td>
                <td>Internet Explorer 7</td>
                <td>Win XP SP2+</td>
                <td class="center">7</td>
                <td class="center">A</td>
            </tr>
            <tr class="even gradeA">
                <td>Trident</td>
                <td>AOL browser (AOL desktop)</td>
                <td>Win XP</td>
        ...

JavaScript

var oTable = $('#example').dataTable({
    "sPaginationType": "full_numbers"
});

$('.dataTables_paginate a').unbind();

$('.dataTables_wrapper').on('click', '.dataTables_paginate a', function(e){
    e.preventDefault();

    var dir = "",
        $this = $(this);

    if($this.hasClass('previous')){
        dir = "previous";
    }else if ($this.hasClass('next')){
        dir = "next";
    }else if($this.hasClass('first')){
        dir = "first";
    }else if($this.hasClass('last')){
        dir = "last";
    }else{
        dir = parseInt($this.text(),10)-1;
    }
    
    var userInteraction = confirm("Do you really want to change the page?");
    
    if(userInteraction){
        oTable.fnPageChange(dir);
        $('.dataTables_paginate span a').unbind();
    }
});

$('.dataTables_wrapper thead th').unbind();

$('.dataTables_wrapper thead th').on('click', function(){
    
    var userInteraction = confirm("Do you really want to sort the column?");
    
    if(userInteraction){
        
        var sortOrder = 'asc',
            $this = $(this);

        if($this.hasClass('sorting_asc')){
            sortOrder = 'desc';
        }
        
        oTable.fnSort([[$this.index(), sortOrder]]);
        $('.dataTables_paginate span a').unbind();
    }
});