循环原因更新按钮多次触发的Jquery

循环原因更新按钮多次触发的Jquery,jquery,Jquery,我有一些问题,我不知道如何实际解决它,基本上我会画出一个数据,并附加到网页上,并分配每个数据与它拥有的div按钮,这是删除和更新,每次点击将删除所有和重新发送的数据,代码如下 function DrawData(){ var txtHd = $('input[id$="hidText1"]').val(); if (typeof(txtHd) != "undefined" || txtHd != "") //if have value { var sSplit = txtHd.spl

我有一些问题,我不知道如何实际解决它,基本上我会画出一个数据,并附加到网页上,并分配每个数据与它拥有的div按钮,这是删除和更新,每次点击将删除所有和重新发送的数据,代码如下

function DrawData(){ var txtHd = $('input[id$="hidText1"]').val(); 
if (typeof(txtHd) != "undefined" || txtHd != "") //if have value
{ 
    var sSplit = txtHd.split(sDelimiter);
    var i;
    var div1, div2, div3, div4, div5, row1, comment;
    for (i=0;i<=sSplit.length-1;i++){
        if (sSplit[i].trim() == "") { return true; }
        comment = "";
        iAdd1 = i + 1;
        div1 = "<div class=container><div id=" + sSplit[i] +" class=number>" + iAdd1 + "</div>";
        div2 = "<div class=stage>Level " + iAdd1 + "</div>";
        div3 = "<div class=name>" + sSplit[i] + "</div>";
        div4 = "<div id=rem" + iAdd1 +" class=rem>remove</div>";
        div5 = "<div id=upd" + iAdd1 +" class=upd>update</div>";;
        div6 = "<div class=drfm>Comment: " + comment +  "</div></div>";

        row1 = div1 + div2 + div3 + div4 + div5 + div6;
        $('#dtdr').append(row1);
        $('#errmsg').fadeOut();
        removeValue(); //add remove function
        updateValue(); //add update function into the div
    }
}}

function updateValue(){
$('.upd').on('click', function(){ 
    var cLb=$('input[id$="hidText1"]').val();
    var updName = $(this).parent().find('.name').text();
    var repName = $('input[id$=fl_Approval]').val().trim();

    if (repName == ""){ $('#errmsg').text("Add error: [ Not allow to add empty name ]"); $('#errmsg').fadeIn(); return; } //check empty value
    if (checkArrayDup(repName,cLb) == true){ $('#errmsg').text("Add error: [ Name: "+ repName + " exist in the list ]"); $('#errmsg').fadeIn(); return; } //check duplicate

    updName = updName + sDelimiter;
    repName = repName + sDelimiter;
    var newVal= $('input[id$="hidText1"]').val().replace(updName ,repName);
    $('input[id$="hidText1"]').val(newVal);
    $('.container').remove();
    DrawData();
});
函数DrawData(){var txtHd=$('input[id$=“hidText1]”)val();
if(typeof(txtHd)!=“未定义”| | txtHd!=”“)//如果有值
{ 
var sSplit=txtHd.split(SDElimitor);
var i;
变量div1,div2,div3,div4,div5,row1,comment;

对于(i=0;i使用事件委派是否适合您?您可以执行以下操作,而不是在.upd div上分配事件处理程序:

$('#dtdr').on('click', '.upd', function(e) { console.log(this); # --> .upd div });

这将把单击事件委托给#dtdr div,该div应该已经存在。当有人单击该div时,它将检查单击是否源自.upd div并执行该函数。这样,在添加行时,您就不必分配新的事件处理程序。

使用事件委托对您有效吗?而不是分配事件处理程序在.upd分区上,您可以执行以下操作:

$('#dtdr').on('click', '.upd', function(e) { console.log(this); # --> .upd div });
这将把click事件委托给#dtdr div,该div应该已经存在。当有人单击该div时,它将检查单击是否源自.upd div并执行该函数。这样,在添加行时,您就不必分配新的事件处理程序