0

テーブル セルのリストをループして、特定のイベント (たとえばclick) があるかどうかを確認してから、コールバック関数を実行することはできますか?

4

1 に答える 1

3

td セレクターとメソッドを使用eachしてループし、イベント データを使用して探しているイベントを取得できます。

$("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/

于 2013-01-17T20:27:02.150 に答える