检查列表中的任何元素是否有事件

时间:2013-01-17 20:24:52

标签: javascript jquery

是否可以遍历表格单元格列表并检查是否有任何特定事件(例如click),然后执行回调函数?

1 个答案:

答案 0 :(得分:3)

您可以使用td selectoreach方法循环并使用事件数据来获取您要查找的事件:

$("td").each(function () 
  {
    //Do you work here
  });

因此,对于以下HTML:

<table id="t1">
    <tr>  <td id="t1A">A     <td> </tr>
    <tr> <td>B  <td> </tr>
    <tr> <td>C  <td> </tr>
    <tr> <td>D <td></tr>
</table>

<table id="t2">
    <tr>  <td id="t2A">A     <td> </tr>
    <tr> <td>B  <td> </tr>
    <tr> <td>C  <td> </tr>
    <tr> <td>D <td></tr>
</table>

您可以使用以下内容:

$("#t1A").click(function () {
    alert("t1A click event");
});

$("td").each(function () {
    var events = $._data(this, "events")

    if (!events) return;

    var clickEvents = events.click;

    if (!clickEvents) return;    

    if (clickEvents.length > 0) {
        alert($(this).attr("id") + " has a click event");
        $(this).click();   // Execute the click if you so desire.
    }
});

请参阅此示例小提琴:http://jsfiddle.net/sdnr6/1/