興味深い状況があります。現在、「展開」ボタンをクリックすると、対応する非表示のテーブル行が表示されます。展開ボタンを含む元の (非表示にされていない) 行の特定のセルには、クリックすると編集可能になるコンテンツもあります。展開ボタンを取り除き、クリックすると編集可能になるフィールドを含め、行自体のどこでもダブルクリックして行を展開できるようにしたいと思います。ここですでに問題の匂いがします。
行をダブルクリックすると、dblclick が発生する前に、最初に 2 つのクリック イベントが発生します。これは、フィールドをダブルクリックすると、編集可能なフィールドに変わり、行が展開されることを意味します。これを防ぎたいと思います。ダブルクリックでシングルクリックの発火を防ぎ、シングルクリックを通常どおり実行したい。
event.stopPropagation() の使用は、2 つの異なるイベントであるため、明らかに機能しません。
何か案は?
編集(いくつかの半疑似コード):
元のバージョン:
<table>
<tbody>
<tr>
<td><a href="javascript:$('#row_to_expand').toggle();" title="Expand the hidden row">Expand Row</a></td>
<td>Some kind of random data</td>
<td><?= $editable_cell_which_turns_into_an_input_field_on_single_click[0]->value("First editable value") ?></td>
<td><?= $editable_cell_which_turns_into_an_input_field_on_single_click[1]->value("Second editable value") ?></td>
<td><?= $editable_cell_which_turns_into_an_input_field_on_single_click[2]->value("Third editable value") ?></td>
<!-- ... -->
<td><?= $editable_cell_which_turns_into_an_input_field_on_single_click[n]->value("Nth editable value") ?></td>
</tr>
<tr style="display: none" id="row_to_expand">
<td colspan="n">Some hidden data</td>
</tr>
</tbody>
</table>
希望のバージョン:
<table>
<tbody>
<tr ondblclick="$('#row_to_expand').toggle()">
<td>Some kind of random data</td>
<td><?= $editable_cell_which_turns_into_an_input_field_on_single_click[0]->value("First editable value") ?></td>
<td><?= $editable_cell_which_turns_into_an_input_field_on_single_click[1]->value("Second editable value") ?></td>
<td><?= $editable_cell_which_turns_into_an_input_field_on_single_click[2]->value("Third editable value") ?></td>
<!-- ... -->
<td><?= $editable_cell_which_turns_into_an_input_field_on_single_click[n]->value("Nth editable value") ?></td>
</tr>
<tr style="display: none" id="row_to_expand">
<td colspan="n">Some hidden data</td>
</tr>
</tbody>
</table>
乾杯