我目前在 document.ready block 中有以下内容:
$("[id^=summaryDetailLink_]").each(function(index) {
var splitID = this.id.split("_");
this.click(alert('clicked: '+splitID[1])); //toggleDetail(splitID[1])
});
最终,我想检测何时单击 ID 为“summaryDetail_”的 TD,并使用从 TD.ID 属性获取的 ID 触发toggleDetail 函数。
上面似乎生成了正确的 ID(弹出警报),但在页面加载时触发,而不是在我单击元素时触发。
那么问题 1 - 为什么它在页面加载时触发,而不是创建一个处理程序来单击每个元素并等待该单击?
问题 2,在阅读此问题时,似乎更明智的做法是在表上创建单个事件处理程序,而不是 TD,然后确定单击了哪个 TD 元素。我如何转换代码来做到这一点?
最佳答案
第一个问题的答案:
$(function() {
$("[id^=summaryDetailLink_]").click(function() {
var splitID = $(this).id.split("_");
alert('clicked: '+splitID[1])
});
}
回答第二个问题,你可以这样做:
$('table#yourtable').on('click', '[id^=summaryDetailLink_]', function(e) {
var splitID = $(this).id.split("_");
alert('clicked: '+splitID[1])
});
关于javascript - 将 jQuery 事件处理程序添加到具有通配符 ID 的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12369084/