2014-07-23 9 views
5

Sto usando un plugin lightgallery dove l'evento click è definito come:Come chiamare click() per elemento?

$(document).on('click', 'a[rel^=lightbox], area[rel^=lightbox], a[data-lightbox], area[data-lightbox]', function(event) { 
    self.start($(event.currentTarget)); 
    event.preventDefault(); 
}); 

Tuttavia, quando provo a chiamare l'evento come questo:

$(".catalog-content a[data-lightbox='test']").first().trigger('click'); 

... non sembra lavorare. Che cosa sto facendo di sbagliato? Come posso attivare l'evento click?

Esempio jsFiddle

+0

è ' $ (". catalog-content a [data-lightbox = 'test']") 'generato dinamicamente? – wildandjam

+0

Suppongo che tu non abbia bisogno di 'first()' nella tua chiamata! –

+0

wildandjam, NO! – Buboon

risposta

0

Hey Ho passato con il jsfiddle e aggiornata si prega di passare attraverso di essa ..

$(document).ready(function() { 
    $(".cars-container a[rel!='']").click(function() { 
     var rel = $(this).attr("rel"); 
     $(".cars-container a[data-lightbox='" + rel + "']:first").trigger('click'); 
    }); 
}); 

clicca qui sotto collegamento jsfiddle per vedere l'esempio di lavoro: - http://jsfiddle.net/wHJ8E/3/

+0

Hm ... Nella mia fonte non funzionano 0_o. – Buboon

+0

quindi controlla il tuo codice sorgente o condividilo ....quindi possiamo verificarlo :) –

+1

@Buboon cosa vuoi fare quando fai clic su '.cars-container a [rel! = '']'? – Manwal

0

Il tuo codice in fiddle non può funzionare.

1) O utilizzare un altro selettore come suggerito da Devendra.
2) o aggiungere la classe .catalog-content al contenitore div:

<div class="cars-container catalog-content"> 

Fiddle

3) Sia Devendra e non riesco a capire.

1

Per "simulare un clic" utilizzando jQuery, si è corretta in quanto si può semplicemente utilizzare il metodo .trigger(...):

$(".myClass").trigger("click"); 

Il vero problema è che si è qualcosa di "clic" che non esiste .non è l'elemento".catalog-content a[data-lightbox='test'. Come suggerisce Velthune, è possibile aggiungere la classe .catalog-content al contenitore div per risolvere questo problema; tuttavia, notare che non esiste anche l'elemento a[data-lightbox='test'].

Invece, nella vostra Fiddle si definisce la seguente:

<a href="http://..." data-lightbox="350xi" id="test"> 
    something 
</a> 

Quindi in realtà vuole solo fare clic sul primo a elemento con un attributo data-lightbox di "350xi":

$("a[data-lightbox='350xi']").first().trigger("click"); 
Problemi correlati