Jquery在另一个函数中编写click事件

时间:2014-01-09 13:33:12

标签: jquery html

以下是我的Jquery

 function editRow(obj) {
    showPopUp();

     var pr_code = $(obj).parent().siblings(':eq(0)').html();
     var ordr_qty = $(obj).parent().siblings(':eq(1)').html();

    $("#ProductCode").find("option").each(function(){
        if($(this).text() == pr_code){
            $(this).prop("selected",true);
        }
    });

    $("#OrderQty").val(ordr_qty);

    $('#add').removeAttr('value');
    $('#add').attr('value', 'Update');

 $('#add').click(function(e) {
    // Do stuff on click
    e.preventDefault();
    var currTrId = $(obj).closest('tr').attr("id");
    if(($("#add").attr("value")) === "Update")
     {
         alert(currTrId);
        $("#popupdiv").fadeOut("slow");
        $("#popupdiv_content").fadeOut("slow");
        $("#backgrounddiv").fadeOut("slow");

        //alert(currTrId);
        var pctxt = $( "#ProductCode option:selected" ).text();
        var pcval = $( "#ProductCode option:selected" ).val();
        var oqval = $( "#OrderQty" ).val();

        $("#"+currTrId).find("td").eq(0).html(pctxt);
        $("#"+currTrId).find("td").eq(1).html(oqval);
        //$currTrId(':eq(1)').html(oqval);

        //alert(pc +"--"+oq);

        selectedEftReqLinesIdArray.push({currTrId: currTrId,ProductCode: pcval,OrderQty:  oqval,parameter: 0});

        console.log(selectedEftReqLinesIdArray);
     }  

    });
} 

这里我尝试使用我的字段数据更新表行,currTrId是当前的tr id,当我点击编辑链接时,弹出窗口将显示已填充数据的字段,然后他可以更新它,当他点击更新按钮,表格将会更新。

对于第一次行编辑,它工作正常,但是当我单击编辑并更新另一行时,两行都在更新,而不是当前行。

当我提醒当前的tr id时,它第二次像循环一样警告两个tr。

任何帮助将不胜感激。谢谢

1 个答案:

答案 0 :(得分:0)

SLC先生是正确的,每当我调用editRow()时,它都会像循环一样创建一个新的点击事件,所以我只是在再次调用之前删除了click事件。

function editRow(obj) {
    showPopUp();

    $('#add').off("click");

    $('#add').on( "click", function(e) { ........ });
});

由于