2014-07-23 17 views
5

Używam plugin lightgallery gdzie zdarzenie click jest zdefiniowany jako:Jak wywołać click() dla elementu?

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

Jednak, gdy staram się wywołać zdarzenie tak:

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

... nie wydaje pracować. Co ja robię źle? Jak mogę uruchomić zdarzenie click?

Przykład jsFiddle

+0

jest ' $ ("zawartość katalogu a [data-lightbox = 'test']") 'generowane dynamicznie? – wildandjam

+0

Chyba nie potrzebujesz 'first()' w twoim wywołaniu! –

+0

wildandjam, NIE! – Buboon

Odpowiedz

0

Hej przeszły jsfiddle i zaktualizowany przejdź przez nią ..

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

kliknij poniżej jsfiddle link, aby zobaczyć przykład pracy: - http://jsfiddle.net/wHJ8E/3/

+0

Hm ... W moim źródle nie działają 0_o. – Buboon

+0

następnie sprawdź kod źródłowy lub udostępnij go ....abyśmy mogli to sprawdzić :) –

+1

@Buboon co chcesz zrobić po kliknięciu na '.cars-container a [rel! = '']'? – Manwal

0

Twój kod w skrzypcach nie działa.

1) Użyj innego selektora, jak zasugerował Devendra.
2) lub dodać klasę .catalog-content do pojemnika div:

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

Fiddle

3) Zarówno Devendra i nie mogę zrozumieć.

1

Do „zasymulować kliknięcie” przy użyciu jQuery, masz rację, że można po prostu użyć metody .trigger(...):

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

Prawdziwym problemem jest to, że jesteś „kliknięcie” coś, co nie istnieje . Jest tam element nie jest elementem".catalog-content a[data-lightbox='test'. Jak sugeruje Velthune, możesz dodać klasę .catalog-content do kontenera div, aby to naprawić; należy jednak pamiętać, że nie ma również elementu a[data-lightbox='test'].

Zamiast w Fiddle zdefiniować następujące:

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

Więc faktycznie po prostu kliknąć na pierwszej a elementu z atrybutem „350xi” data-lightbox:

$("a[data-lightbox='350xi']").first().trigger("click"); 
Powiązane problemy