Skip to main content

Impedir ajax en los enlaces de views dentro de la cabecera

Cuando tenemos una vista de tipo flipped table (o derivante de ella) en views que utilice ajax, y configuramos el sticky header (cabecera fija en la pantalla), si hemos puesto un enlace en la primera fila, no podremos acceder a el.

El problema que ocurre es que si activas ajax, views añade un evento a ciertos links para su propio funcionamiento, y sin querer selecciona el enlace al estar dentro de una etiqueta th. Si usas una vista de tabla normal no pasaría porque la cabecera no esta dentro de una etiqueta th, sino en una etiqueta td.

Existe una solución rápida, que es seleccionar el link que no quieres que se 'ajaxifique', y eliminar su evento de click. Hay que seleccionarlo de dos lugares, ya que el script tableheader duplica las columns de sticky header para que sean fijas.

Ejemplo:

if ($('.view-content .sticky-header').length > 0) {
  $('.view-content .sticky-header thead th > a').unbind('click');
  $('.view-content .sticky-enabled thead th > a').unbind('click');
}
Omar Lopesino

Omar Lopesino

Senior Drupal developer