2011-01-24 15 views
5

estoy haciendo un poco de refactorización en un poco de lógica y me encontré con este trozo de código y todavía estoy tratando de entenderlo¿Qué es este selector jQuery: a [@ rel * = lightbox]?

try { 
    $('a[@rel*=lightbox]').lightBox(); 
    } catch (e) {} 

entiendo la parte intento de captura, pero lo que es esta parte

('a[@rel*=lightbox]') 
+0

Usted * podría * querer usar '$ ('a [rel ~ = lightbox]'). LightBox();' en cambio, como '~ =' busca la palabra completa 'lightbox' en lugar de' * = ' , que solo encuentra una subcadena, por ejemplo "notalightbox" se incluiría en el método '* ='. –

Respuesta

12

Es la forma antigua de XPath de decir buscar anclajes con lightbox en su atributo rel. Por lo que se correspondería con un ancla como el ejemplo a continuación ...

<a href="http://example.com/image.jpg" alt="image" rel="external me lightbox">Link</a> 

Se ha quedado obsoleto y retirado de nuevas versiones de jQuery. Para conseguir que funcione con las versiones más recientes, simplemente dejar caer el @:

$('a[rel*=lightbox]') 
0

Se selecciona todos los enlaces que contiene caja de luz en el atributo rel

0

Está buscando enlaces en la página que tienen somelink para abrir una ventana lightbox.

1

Hay una forma mejor de escribir este selector.

$('img[rel="lightbox"]') 

Esto seleccionará cualquier etiqueta de imagen con la relación de "lightbox". No debería necesitar hacer una declaración try, si ha incluido correctamente todos sus scripts debería funcionar bien.

+1

Pero no coincide con rel = "external lightbox" como en @alex answer. – jcubic

+0

Entonces, simplemente puede usar * = like so: $ ('img [rel * = "lightbox"]') – Mitch