2012-06-20 14 views
6

Włączanie podpis pod linkiem nie działa w Lightbox 2,51 pobranego od here
Oto kod:toczenia podpis w link nie działa w Lightbox 2,51

<a href="images/examples/image-1.jpg" rel="lightbox" 
    title="&lt;a target='_self' href='http://www.google.com'&gt;Google&lt;/a&gt;"> 
    <img src="images/examples/thumb-1.jpg" alt="" /> 
</a> 

Co należy zrobić?
Dzięki :)

Odpowiedz

1

Spróbuj użyć javascript w tagu

onClick = " window.location.href = ' http://www.google.com ' "

Próbka

<a href="images/examples/image-1.jpg" rel="lightbox" 
    title="&lt;a target='_self' onClick=&quot;window.location.href=&#x27;http://www.google.com&#x27;&quot; href='http://www.google.com'&gt;Google&lt;/a&gt;"> 
<img src="images/examples/thumb-1.jpg" alt="" /> 
</a> 
11

Znalazłem rozwiązanie tego problemu w lightbox.js. Musisz edytować obudowę if, dodając warunek else, który zapobiega zawsze zwracaniu false po kliknięciu w "lightbox" div.

$lightbox.hide().on('click', function(e) { 
    if ($(e.target).attr('id') === 'lightbox') { 
     _this.end(); 
     return false; 
    } 
    else { // HERE 
     return true; 
    } 
    }); 
+0

Ta metoda prawdopodobnie będzie działać w większości przypadków, ale wydaje mi się, że może ona mieć niezamierzone skutki uboczne, ponieważ wpłynie na wszystkie kliknięcia, które będą się odbijać od lightbox. Dodałem bardziej ograniczoną interwencję w mojej odpowiedzi poniżej, która zarejestruje tylko zdarzenie w linkach wewnątrz podpisu. – NateWr

0

Nie byłem w stanie uzyskać żadnej z odpowiedzi tutaj, aby pracować dla mnie. Jednakże, stwierdziłem, że działa Slimbox2 i jest bardzo prosta do zamiany, ponieważ używa tej samej składni.

3

Znalazłem to, co uważam za lepsze rozwiązanie niż te wymienione powyżej, używając Lightbox 2 w wersji 2.6. Na linii 252 lightbox.js (unminified), zobaczysz tę linię, która dodaje podpisem:

this.$lightbox.find('.lb-caption').html(this.album[this.currentImageIndex].title).fadeIn('fast'); 

Po podpis dodaje, można zarejestrować zdarzenie click i zmusić przeglądarkę do naśladowania w dowolny link podpis dodając na łańcuchu:

this.$lightbox.find('.lb-caption').html(this.album[this.currentImageIndex].title).fadeIn('fast').find('a').on('click', function() { location.href = $(this).attr('href') }); 

mam zainicjował pull request z tej zmiany, dzięki czemu można śledzić status i wszelkie dalsze dyskusje tam.

Powiązane problemy