如何动态设置按钮ID并绑定点击事件?

问题描述:

使用此代码动态生成按钮和分配上ID:使用此代码让每一个按钮的ID在其click事件如何动态设置按钮ID并绑定点击事件?

function successCBofMissedNamazFromDB(tx, results) { 
      if (results != null && results.rows.length > 0 && results.rows != null) { 
       var htmlstring = ""; 
       var temp = 0; 
       for (var i = 0; i < results.rows.length; i++) { 

        htmlstring += '<div class="ui-grid-b">'; 
        htmlstring += '<div class="ui-block-a ui-bar-d" style="font-size:x-medium;height:80px;">' 
          + prayerName[i] + '</div>'; 
        htmlstring += '<div class="ui-block-b ui-bar-e" style="font-size:x-medium;height:80px;">' 
          + results.rows.item(i).missing_prayers + '</div>'; 

        alert(""+performedNamaz[i]); 
     htmlstring += '<div class="ui-block-c ui-bar-e" style="font-size:x-medium;height:80px;"><input type="number" data-inline="true" data-mini="true" value="'+performedNamaz[i]+'"/><a href="#" data-role="button" data-inline="true" data-icon="plus" id=button'+i+' style="float:right;width:30%;">ADD</a>' 
     +''+ '</div>'; 
     htmlstring += '</div>'; 
    } 
$("#chart1").empty().append(htmlstring).trigger('create'); 
} 
} 

$('button').live('click', function(){ 
     var btnId = $(this).attr('id'); 
     alert(btnId); 
     }); 

一些语法错误在这行的为什么它不工作别人,当我尝试静态分配ID,它的做工精细

htmlstring += '<div class="ui-block-c ui-bar-e" style="font-size:x-medium;height:80px;"><input type="number" data-inline="true" data-mini="true" value="'+performedNamaz[i]+'"/><a href="#" data-role="button" data-inline="true" data-icon="plus" id=button'+i+' style="float:right;width:30%;">ADD</a>' 
      +''+ '</div>'; 

问题与

value='+performedNamaz[i]+' and id=button'+i+' 

改成了

htmlstring += '<div class="ui-block-c ui-bar-e" style="font-size:x-medium;height:80px;"><input type="number" data-inline="true" data-mini="true" value="+performedNamaz[i]+"/><a href="#" data-role="button" data-inline="true" data-icon="plus" id=button"+i+" style="float:right;width:30%;">ADD</a>' 

和Live()已过时的()函数使用了buttonclick

+0

作的修改,但仍然$( '按钮')。住( '点击',函数(){ VAR btnId = $(本).attr('id'); alert(btnId); }); – nida 2013-05-10 08:58:43

+0

上面提到的函数在注释中并没有触发,我没有得到id点击按钮 – nida 2013-05-10 08:59:19

+0

请看看这篇文章也:http:/ /*.com/questions/16458943/how-to-get-this-result-from-sqlite-coalesce-query – nida 2013-05-10 09:03:49

我认为delegates会在您的示例中更好,而不是live()

$('.ui-block-c').delegate('a#button','click', function(){ 
    var btnId = $(this).attr('id'); 
    alert(btnId); 
}); 

一个侧面说明:它是对HTML规格有一个以上的元件轴承相同的ID,所以我建议你用一个类,而不是

取代它正如你所说的代码工作正常静态值我假设问题是靠近ID。 尝试把“近ID。

id="button'+i+'" 

全码

htmlstring += '<div class="ui-block-c ui-bar-e" style="font-size:x-medium;height:80px;"><input type="number" data-inline="true" data-mini="true" value="'+performedNamaz[i]+'"/><a href="#" data-role="button" data-inline="true" data-icon="plus" id="button'+i+'" style="float:right;width:30%;">ADD</a>' 
      +''+ '</div>';