2014-07-23 2 views
5

ich ein lightgallery Plugin verwenden, wo das click Ereignis wie folgt definiert ist:Wie rufe ich click() für ein Element auf?

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

Allerdings, wenn ich versuche, wie dies das Ereignis zu nennen:

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

... es scheint nicht arbeiten. Was mache ich falsch? Wie kann ich das Ereignis click auslösen?

Beispiel jsFiddle

+0

Ist ' $ (". catalog-content a [daten-lightbox = 'test']") 'dynamisch generiert? – wildandjam

+0

Ich denke du brauchst 'first()' nicht in deinem Anruf! –

+0

wildandjam, NEIN! – Buboon

Antwort

0

Hey ich habe durch die jsfiddle gegangen und aktualisiert es durch sie bitte gehen ..

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

Klick unten jsfiddle Link, um das Arbeitsbeispiel zu sehen: - http://jsfiddle.net/wHJ8E/3/

+0

Hm ... In meiner Quelle funktionieren 0_o nicht. – Buboon

+0

dann überprüfen Sie Ihren Quellcode oder teilen Sie es ....also können wir es überprüfen :) –

+1

@Buboon was Sie tun möchten, wenn Sie auf '.cars-container a klicken [rel! = '']'? – Manwal

0

Dein Code in Geige kann nicht funktionieren.

1) Verwenden Sie einen anderen Wahlschalter als von Devendra vorgeschlagen.

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

Fiddle

3) Sowohl Devendra und ich kann nicht verstehen:
2) oder die .catalog-content Klasse zum div Container hinzufügen.

1

Um mit jQuery „einen Klick zu simulieren“, sind Sie in dem richtigen Sie nur die .trigger(...) Methode verwenden:

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

Das eigentliche Problem ist, dass Sie „Klicken“ etwas, das nicht existiert . Dort ist kein".catalog-content a[data-lightbox='test' Element. Wie unter Velthune vorgeschlagen, können Sie die Klasse .catalog-content zum div Container hinzufügen, um dies zu beheben. Beachten Sie jedoch, dass es auch kein a[data-lightbox='test'] Element gibt.

Stattdessen Sie in Ihrem Fiddle Folgendes definieren:

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

So Sie eigentlich wollen nur mit einem data-lightbox Attribut "350xi" auf dem ersten a Element klicken:

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