我需要一个复选框的帮助。我已经基于JSON数据动态生成了复选框,该复选框是由jquery生成的。我需要动态生成复选框类名称。这是我的代码,生成了一个复选框
<td>
<label class="switch">
<input
id="chkEnabled"
checked
type="checkbox"
onchange="checkedorUncheked(' + result.data.resultSet[i].id + ',' + count + ')" class="chkEnabled"' + count +' >
<span class="slider round"></span>
</label >
</td>
这里class =“ chkEnabled”'+ count +'我正在增加类值,但是当我调用checkedUncheked方法时,我得到了计数值,但没有得到类值。在这里,我进行控制台
` this.checkedorUncheked = function (item, item2) {
//console.log('.chkEnabled' + item2);
$('.chkEnabled' + item2).change(function () {
console.log(item2);`
由于类名,我无法在change事件内部进行控制台。你能帮我吗 。预先感谢
答案 0 :(得分:1)
动态生成HTML元素时,您需要重新绑定所生成元素的事件
尝试
this.checkedorUncheked = function (item, item2) {
//console.log('.chkEnabled' + item2);
$('.chkEnabled' + item2).on('change',function () {
console.log(item2);
使用on()方法而不是直接使用.change(),但是在建议的注释中不要生成类,而是生成ID并使用它。
然后代码变为
$('#chkEnabled' + item2).on('change',function () {
console.log(item2);
更新
<input
id=' + result.data.resultSet[i].id + '
checked
type="checkbox"
onchange="checkedorUncheked(this);" count=' + count +' >
<span class="slider round"></span>
function checkedorUncheked (e){
var itme1 = $(e).attr('id'); /// for id
var item2 = $(e).attr('count'); // count
if($(e).prop('checked') == true){
//do something
}
else{
/// do another
}
}