2016-04-19 4 views
3

Ich habe es mit einer Javascript-Datentabelle mit anklickbaren Zeilen zu tun. Jede Zeile hat onclick-Funktion, aber in meiner Spalte habe ich verschiedene Links, die jquery Dialogfelder öffnen, auf dieser Spalte möchte ich die row click-Methode deaktivieren, wie geht das? hier ist eine Funktion, die ich von Zeilen implementieren klickenWie verhindert man die Zeilenklickfunktion für eine bestimmte Spalte in der Datentabelle?

$(rec' tbody').on('click', 'tr', function() { 

}); 

Antwort

3

müssen Sie Reihe Klick für diese bestimmte Spalte

$('rec' tbody'').on('click', 'td', function() { 

     if ($(this).index() == 4) { // provide index of your column in which you prevent row click here is column of 4 index 
      return; 
     } 

      // you can do additional functionality by clicking on this column here       
    }); 
0

eine Klasse oder etwas Verwenden Sie die Zeile/Spalte zu identifizieren, die Sie nicht wollen, wenn das Click-Ereignis von diesem Element und event.preventDefault() kommt geklickt und überprüfen verwenden Aktion abbrechen.

1

können Sie entweder überprüfen, ob zu sehen, was geklickt wurde, war ein Anker

$(rec' tbody').on('click', 'tr', function (evt) { 
    if ($(evt.target).is("a")) { 
     return; 
    } 
    /* do whatever here */ 
}); 

oder andere Option ist, um die Ausbreitung des Ereignisses von der Verbindung/Zelle zu stoppen.

+0

Dies ist die beste Antwort, verwenden Sie einfach Standard js/jquery Funktionalität. Gute Antwort! – SubliemeSiem

0

Sie versuchen, die Klasse Einstellung für jede Spalte könnte deaktivieren, die Sie sonst spezifische und nicht-anklickbar etwas zu etwas klickbare sein wollen.

<table> 
    <tr> 
    <td class="clickable">click this</td> 
    <td class="clickable">and this</td> 
    <td class="something-else">but not this</td> 
    </tr> 
</table> 

Und dann haben Sie Ihre jQuery nur eher von der Klasse etwas tun, als die <tr>

$(".clickable").click(function(){ 
    alert('hello'); 
}); 
Verwandte Themen