[JS/JQ] trigger onclick event

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Anoniem: 294614

Topicstarter
Hallo,

Ik ben bezig met een aantal onclick events in jquery en loop tegen het volgende probleem aan:

html:
code:
1
2
3
<a href="http://www.eenurl.nl" id="url">test1</a>

<div id="div">asdf</div>


javascript:
code:
1
2
3
4
$('#div).bind('click', function(){
        console.log('deze wordt uitgevoerd!');
        $('#url').trigger('click');
        });


de javascript wordt ingeladen tijdens het onload event. Wanneer ik klik op het divje wordt de console.log functie wel aangeroepen.

Hetvolgende heb ik ook al geprobeerd zonder succes:
code:
1
2
3
4
$('#div).click(function()({
        console.log('deze wordt uitgevoerd!');
        $('#url').trigger('click');
        });


Iemand enig idee waarom dit niet werkt?

Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18:42
Wat is je click-event dan op die #url? Wat zou volgens jou getriggered moeten worden?

Acties:
  • 0 Henk 'm!

Anoniem: 294614

Topicstarter
is het niet zo dat op dit event automatisch de webpagina geladen wordt?

De gehele bedoeling is om vanuit een image slider door te gaan naar een lightbox. Dit werkt prima wanneer er op de images in de image slider geklikt wordt maar een divje met VERGROOT erin werkt niet.

Ik ben al aan het kijken of dit nou wel of niet aan het onclick event gelinkt wordt of dat het aan een ander mogelijk event vastzit.

Acties:
  • 0 Henk 'm!

Verwijderd

Je moet inderdaad ergens iets hebben met:

code:
1
$('#url').click(function(){doeIets();});

[ Voor 8% gewijzigd door Verwijderd op 05-01-2011 14:17 ]


Acties:
  • 0 Henk 'm!

  • gvdh
  • Registratie: December 2009
  • Laatst online: 21:15
Volgens mij worden alleen de click-handlers van #url uitgevoerd, en wordt de link niet gevolgd. Daarvoor zal je zelf code moeten schrijven.
Uit de losse pols; niet getest:
JavaScript:
1
2
3
4
5
$('#div').click(function() {
    console.log('deze wordt uitgevoerd!');

    window.location.href = $('#url').attr('href');
});


Oh, door de syntax-highlighting zie ik dat er een quote ontbreekt bij je $('#div').
En er stond een haakje te veel na function().

edit:
@sfranken hieronder:
window.location is een object met verschillende properties, o.a. href en hash. Meer info.

[ Voor 18% gewijzigd door gvdh op 05-01-2011 14:32 ]


Acties:
  • 0 Henk 'm!

  • sfranken
  • Registratie: Mei 2010
  • Laatst online: 17-06 20:00
@gvdh

Het is window.location, niet window.location.href volgens mij!

Acties:
  • 0 Henk 'm!

  • HuHu
  • Registratie: Maart 2005
  • Niet online
Het click-event aanroepen op een a-tag is expliciet uitgeschakeld in jQuery, ik dacht in Internet Explorer. Je kunt het volgende gebruiken:

JavaScript:
1
$('a').bind('click', function(event) { window.location = this.href; });


Dan werkt het wel.

Acties:
  • 0 Henk 'm!

Anoniem: 294614

Topicstarter
in dit geval wil ik vanuit een div een a tag uitvoeren. Zou ik dit zo kunnen doen dan? :

code:
1
2
3
4
$('#div').bind('click', function(){
        console.log('deze wordt uitgevoerd!');
        $('a').trigger('click');
        });


dit gaat natuurlijk niets oplossen.. zo trigger je alle a-tags..
$('a #div').trigger('click'); of $('#div a').trigger('click'); beter?

[ Voor 22% gewijzigd door Anoniem: 294614 op 05-01-2011 14:32 ]


Acties:
  • 0 Henk 'm!

  • gvdh
  • Registratie: December 2009
  • Laatst online: 21:15
Wat bedoel je precies met "uitvoeren"?
Ik veronderstel de je wilt navigeren naar de url van die link. Dat heb ik in mijn bovenstaande post uitgelegd.

Acties:
  • 0 Henk 'm!

Anoniem: 294614

Topicstarter
Ik heb een image slider. De images staan binnen a-tags. Wanneer er wordt geklikt op een van de images zorgt de a-tag dat er een lightbox geopend wordt.

Dit zijn beide jquery libraries.

Ik maak een aparte plaatje (binnen een div tag) waarmee ik ook wil dat de lightbox wordt geopend. Dat bedoel ik met uitvoeren.

Mijn probleem met oplossing wordt hier vermeld maar werkt niet:
http://forums.no-margin-f...y-a-function-call/#Item_6

Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18:42
Uhh, kijk even in de documentatie van die lightbox en bekijk hoe je handmatig een lightbox kunt openen?

Maar verder mis ik je binding van de lightbox op de link. Geef anders eens een volledig voorbeeld, dan hoeven we niet te raden waar het om gaat..

[ Voor 41% gewijzigd door Bosmonster op 05-01-2011 14:47 ]


Acties:
  • 0 Henk 'm!

Anoniem: 294614

Topicstarter
html:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<div class="slider" id="slider_222">
    <ul>
        <li>
           <a href="imagebig1.gif" class="gal1" id="gal1_pic0"  rel="gal1">
               <div src="image_small1.gif"></div>
            </a>
        </li>
        <li>
           <a href="imagebig2.gif" class="gal1" id="gal1_pic1"  rel="gal1">
               <div src="image_small2.gif"></div>
            </a>
        </li>
    </ul>
</div>

<div onclick="$('#gal1_pic1').trigger('click');">vergroot</div>


Het klikken op een van de a tags zorgt ervoor dat de lightbox opent met de twee grote images erin.
Als lightbox gebruik in jquery.prettyphoto: http://www.no-margin-for-...to-jquery-lightbox-clone/

deze roep ik alsvolgt aan:
code:
1
 $("a[rel^='gal1']").prettyPhoto();


anyway, ik ga het op een andere manier proberen. In de API van prettyPhoto staat een voorbeeld om het alsvolgt te doen:

code:
1
2
3
4
        images = ['images/fullscreen/image1.jpg','images/fullscreen/image2.jpg','images/fullscreen/image3.jpg'];
    titles = ['Title 1','Title 2','Title 3'];
    descriptions = ['Description 1','Description 2','Description 3']
    $.prettyPhoto.open(images,titles,descriptions);


Ik kan natuurlijk ook het onclick event van de div dit laten uitvoeren. Op deze manier kan ik ook registeren welke foto op dit moment in de slide actief is en deze als eerste laten zien.

[ Voor 27% gewijzigd door Anoniem: 294614 op 05-01-2011 15:17 ]

Pagina: 1