2016-07-29 9 views
1

Ich habe eine HTML-Tabelle, die Gruppenzeilen enthält, die es erlauben, ihre untergeordneten Zeilen über jQuery zu erweitern und zu reduzieren, wenn sie angeklickt werden. Jede Gruppenzeile enthält eine einzelne Spalte, die sich über alle Spalten der Tabelle erstreckt. In dieser Spalte befindet sich ein Link, der ein neues Fenster öffnet.Link innerhalb des Link-Problems: Platzieren eines Links in einem anklickbaren Element

Das Problem tritt auf, wenn Sie auf den neuen Fensterlink klicken. Das neue Fenster wird nicht nur geöffnet, sondern durch Klicken auf den Link wird das onclick-Ereignis der Gruppenzeile ausgelöst, das die Gruppe der Zeilen umschaltet. Irgendwelche Ideen, wie ich das Umschalten verhindern kann, wenn die neue Fensterverknüpfung angeklickt wird, während das Umschalten erlaubt wird, wenn die Zeile irgendwo anders angeklickt wird?

<tr class="groupRow" onclick="toggleChildRows()"> 
    <td colspan="@tableColumnCount"> 
     <a href="@newWindowPath">New Window</a> 
    </td> 
</tr> 
+1

Meiner Meinung nach, Schlechtes Design. Kannst du klären, wann es umschalten soll und ein neues Fenster öffnen soll? – Satpal

+1

Es ist ein häufiges Problem und Sie können [event.stopPropagation] (https://api.jquery.com/event.stoppropagation/) verwenden, um das Ereignis auf sein Element zu beschränken – Craicerjack

Antwort

0

Ich denke, es gibt bessere Möglichkeiten, dies zu machen, aber man kann die Ausbreitung (Sprudel) der Verbindung stoppen und es wird funktionieren:

$('a').on('click', function(event) { 
 
    event.stopPropagation(); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div onclick="alert('yeah');"> 
 
    <a href="@newWindowPath">New Window</a> 
 
    <div>click this</div> 
 
</div>

Verwandte Themen