我有一些基于所选表单输入动态生成的按钮:
$.each(fields, function (i, field) {
var field_id = $('[name=' + field.name + ']').closest("fieldset").attr('id');
$("#results").append('<button id="jumpToThisStep" data-id="'+field_id.replace('q','')+'">'+field.value+ ' ' +'</button>');
});
Run Code Online (Sandbox Code Playgroud)
}
在我的doc.ready功能中,我有以下内容:
$('#jumpToThisStep').click(function() {
var jump_to = $(this).data('id');
showStep(jump_to);
});
Run Code Online (Sandbox Code Playgroud)
HTML:
<button id="jumpToThisStep" data-id="0"> ... </button>
<button id="jumpToThisStep" data-id="1"> ... </button>
<button id="jumpToThisStep" data-id="2"> ... </button>
Run Code Online (Sandbox Code Playgroud)
在检查元素时,它们都具有适当的data-id绑定.但是唯一一个发射的是第一个.是什么阻止他人预先形成他们的.click?
您需要在此处使用事件委派,因为您的按钮是动态添加的,因此事件委派将帮助您将click事件附加到这些新创建的按钮:
$('#results').on('click', '.jumpToThisStep', function() {
var jump_to = $(this).data('id');
showStep(jump_to);
});
Run Code Online (Sandbox Code Playgroud)
也是id独一无二的,您需要使用类替换按钮.
| 归档时间: |
|
| 查看次数: |
540 次 |
| 最近记录: |