jquery связать событие клика с классом? datatables ajax удаляет строку из тега - PullRequest
0 голосов
/ 16 ноября 2011

Я использую Datatables, и в таблице, в которой есть два столбца, во втором столбце есть текстовая ссылка с классом .deletecomp, при нажатии ajax удаляет запись из базы данных, но у меня возникают проблемы при обновлении таблицы.

Я добавил код под комментарием // Test delete tr, и когда я щелкаю по любому tr в таблице, он удаляет строку и обновляет таблицу.AJAX запущен и запись в таблице базы данных удалена.Как я могу изменить эту функцию для работы с моей текстовой ссылкой Удалить, которая имеет класс .deletecomp

Это то, как я инициализирую таблицу

    oTableVC = $('#viewcomp').dataTable( {
        "sDom":'t<"bottom"filp><"clear">',
        "bAutoWidth": false,
        "sPaginationType": "full_numbers",
            "aoColumns": [ 
            null,
            null
            ]
    } 
    );
    //Test delete tr
    $("#viewcomp tbody tr").live('click', function () {
        oTableVC.fnDeleteRow( this );
    });

});

И это AJAX, который удаляетзапись в БД

$(".deletecomp").live('click', function(event){
    event.preventDefault();
    cidstring = $(this).attr("id");
    cidArr = cidstring.split("-");
    cid = cidArr[1];
    var url = 'http://domain.com/ajaxdeletecomp?format=json';

    $.post(url, { id: cid},function(ajaxdata) {
        //deleting row from table

        });
    });

1 Ответ

0 голосов
/ 16 ноября 2011

Я не использовал этот плагин раньше; однако, основываясь на вашем коде, следующее должно помочь:

// Needs to be declared in the the JS Document outside of any functions //
var oTableVC = $('#viewcomp').dataTable( {
    "sDom":'t<"bottom"filp><"clear">',
    "bAutoWidth": false,
    "sPaginationType": "full_numbers",
    "aoColumns": [ 
        null,
        null
        ]
    } 
);


$(".deletecomp").live('click', function(event){
    event.preventDefault();
    cidstring = $(this).attr("id");
    cidArr = cidstring.split("-");
    cid = cidArr[1];
    var url = 'http://domain.com/ajaxdeletecomp?format=json';
    var $target = $(this).closest('tr'); // Add Reference </tr> of Link

    $.post(url, { id: cid},function(ajaxdata) {
        //deleting row from table
        oTableVC.fnDeleteRow( $target ); // Deletes Row
    });
});

Надеюсь, это поможет!

...