Javascript mit jQuery: Klicken Sie und doppelklicken Sie auf dasselbe Element, unterschiedliche Wirkung, eine deaktiviert die andere

Habe ich eine interessante situation - ich habe eine Zeile in der Tabelle, die zur Zeit, zeigt, dass es versteckte Gegenstück, wenn ich auf die "Erweitern" Taste. Das original (sichtbaren) Zeile, die enthält die Schaltfläche "erweitern" hat auch einige Inhalte in einer bestimmten Zelle, die, wenn Sie angeklickt wird, wird editierbar. Ich möchte Los zu sein, die Schaltfläche erweitern und aktivieren Sie den ausbau der Zeile per Doppelklick irgendwo in der Zeile selbst, einschließlich Feld, dreht bearbeitet werden, wenn Sie darauf klicken. Können Sie riechen die Mühe hier schon.

Wenn ich doppelt auf eine Zeile, zwei click-Ereignisse ausgelöst werden, bevor das dblclick tritt. Dies bedeutet, wenn ich doppelt auf das Feld klicken, es wird in eine editierbare ein, und die Zeile zu erweitern. Ich möchte, dies zu verhindern. Ich will das doubleclick-um zu verhindern, dass die Entlassung des einzigen Klick, und das mit nur einem Mausklick führen Sie wie gewohnt.

Über das Ereignis.stopPropagation() klar wird nicht funktionieren, da Sie von zwei verschiedenen Ereignissen.

Irgendwelche Ideen?

Bearbeiten (einige halb-pseudo-code):

Original version:

<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>

Gewünschte version:

<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>

Cheers

InformationsquelleAutor der Frage Swader | 2011-03-29

Schreibe einen Kommentar