0

这是我当前的代码:

function tableClick(event){
    $('#table').click(function(event){
        alert(event.target.id);     
    });
}

<table id="table">
    <tr>
        <td id="td1" onclick="tableClick(this)">
            1
        </td>
    </tr>
    <tr>
        <td id="td2" onclick="tableClick(this)">
            2
        </td>
    </tr>
</table>

我不明白的是为什么它比上次多一次弹出警报窗口。我怎样才能解决这个问题?提前致谢。

4

2 回答 2

4

每次单击时,都会调用此函数。

function tableClick(event){
    $('#table').click(function(event){
        alert(event.target.id);     
    });
}

这部分:

$('#table').click(function(event){

将点击处理程序附加到表。每次单击时,都会将新的单击处理程序附加到表中。

于 2013-06-11T14:57:54.203 回答
1

因为您在每次点击时都附加点击处理程序 -

你可以这样做 -

function tableClick(this){
     alert(this.id);     
}
于 2013-06-11T14:58:41.353 回答