$ .ajax发送两次,event.preventDefault不可用?

时间:2013-10-16 10:51:52

标签: javascript php jquery ajax

我刚学习javascript和jquery现在我使用jquery数据表时遇到了问题。

我的数据是两次发布到php。我不知道如何在我的脚本上实现event.preventDefault并返回false不会工作。

olistorderproduktdatatable = $("#listorderprodukttable").dataTable({
    "bJQueryUI": true, "bPaginate": false, "bFilter": true, "bInfo": false, "bAutoWidth": true, "sDom": 'Rlfrtip', 
    "bServerSide": true,
    "sSearch" :"Filter",
    "bDestroy": true,
    "sAjaxSource": "share/content/helper/datatablelistorderprodukt.php" 
});

$('#listorderprodukttable tbody').delegate("tr", "click", rowClickAddPosition);

function rowClickAddPosition(){
    //Welche Zeile wurde selektiert und ID herausfiltern 
   if (hlr)
      $("td:first", hlr).parent().children().each(function(){$(this).removeClass('markrow');});
   hlr = this;
   $("td:first", this).parent().children().each(function(){$(this).addClass('markrow');});

   // You can pull the values out of the row here if required
   var a = $("td:first", this).text();
   var b = $("td:eq(1)", this).text();

   selectedRow      = a;  //ID der Zeile WICHTIGE VARIABLE!!!

    //Abfrage ob ID leer ist, also ob es überhaupt Einträge gibt.
   if(selectedRow != "No matching records found"){
        $.ajax({
            type : 'POST',
            url : 'share/content/helper/orderaddposition.php',
            cache: false,
            data: {
                SelectedProdukt : selectedRow,
                BestellID       : BestellID
            },
            success: function(data) {
                callbackaddposition();
            }
        });
    }
}

我不知道如何捕捉这个事件?

2 个答案:

答案 0 :(得分:0)

你有没有尝试过:

function rowClickAddPosition(e) {
   e.preventDefault();
   // ...
}

答案 1 :(得分:0)

使用event.stopPropagation()并在功能中使用return false

$('#listorderprodukttable tbody').delegate("tr", "click", function(e){
    rowClickAddPosition(e);
    return false;// to stop bubbling up
});

function rowClickAddPosition(e){
   e.stopPropagation();
   // remaining code