0

我目前在 document.ready 块中有以下内容:

        $("[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 元素会更明智。我将如何转换代码来做到这一点?

4

2 回答 2

1

我认为您误解了点击处理程序的工作原理:

$(function() {
    $("[id^=summaryDetailLink_]").click(function() {
        var splitID = $(this).id.split("_");
        alert('clicked: '+splitID[1])
    });
}
于 2012-09-11T11:55:01.067 回答
1

回答第一个问题:

$(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])
});
于 2012-09-11T11:59:28.600 回答