3

HTMLテーブルのTR内でクリックされた要素を取得しようとしています。TR 内の Select 入力をクリックすると、CurrentTargetフィールドは「TR」をOriginalTarget返し、「SELECT」を返します。

これは私のHTMLです:

<table id="0" class="tableEdit">
    <thead>
        <tr>
            <th name="id"></th>
            <th name="name">Descripción Registro</th>
            <th name="select">Fecha</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>1651</td>
            <td>Name</td>
            <td>
                <select name="selectName">
                    <option value="1">1</option>
                    <option value="2">2</option>
                </select>
            </td>
        </tr>
    </tbody>
</table>

そして、これは私のコードです:

            //trb is each TR element of the line
    $(trb).click(function(elem){
        if (elem.currentTarget && elem.currentTarget.tagName.toLowerCase() === "tr" && !isInput(elem.originalTarget)){
            if (editableRow){
                var rowTrigger = editableRow.find("button").get();
                $.editRow(rowTrigger,$.tableEditor.vault.getTableID($("#" + id)));
            }
    });

このコードは Web ブラウザでは問題なく動作しますが、OriginalTarget が を返すため、モバイル デバイスでは動作しませんundefined。モバイル Web ブラウザーで元のターゲットを取得する方法はありますか?

4

2 に答える 2

3

あなたは実際に何であるかを言っていませんが、テーブル内の要素trbのセットのように聞こえます.tr

あなたが探しているのはelem.target. これは、クリックされた最上位の要素であり、イベントを開始した要素です。elem(FWIW、私は event handlerに渡された引数を呼び出しません。これはeventであり、要素ではありません。)

たとえば、次の場合:

<table>
<tbody>
<tr>
<td><span><strong>Click me</strong></span></td>
</tr>
</tbody>
</table>

...この:

$("tr").click(function(e) {
    console.log(e.target.tagName);
});

...「クリックしてください」というテキストをクリックすると、

強い

...コンソールで。


補足:closestどのセルまたは行がクリックされたかを知りたい場合は、これを使用すると便利です。

var $td = $(e.target).closest('td');
于 2013-09-11T07:08:50.410 に答える