2010-11-06 22 views
0

J'ai une image que je veux exécuter un lien avec un événement javascript onClick lorsque l'utilisateur clique sur l'image.Lier l'événement onClick à une fonction .click

Le lien est

<a class="test" href="javascript:;" onclick="foo.add('name=name', 'quantity=1');"> 
<img src="pic.png" alt="Click" /></a> 

Jquery Je tripotent

$('.test').click(function(){ 
onclick = $(this).attr('onclick'); 
$(this).attr('onclick',''); 
    return false; 
}); 

ne fonctionne pas ...

Répondre

1

Si vous voulez vraiment exécuter juste une fonction onclick déjà existante, utiliser quelque chose comme ceci:

$('a.test img').click(function() { 
    var link = $(this).parent()[0] 
    var onclick = $(link).attr('onclick') 
    onclick.call(link) 
}) 

Vous voulez passer le lien en onclick.call. Cela définit le lien en tant que récepteur de l'appel de fonction, ce qui correspond à la manière dont l'attribut onclick se déclencherait normalement. Si vous appelez simplement onclick(), vous pourriez avoir des problèmes.

+0

Il semble faire l'événement onClick mais j'obtiens une erreur que onclick est indéfini. Des idées? – Macsupport

+0

Je ne sais pas pourquoi vous obtenez l'erreur que vous obtenez. Voici un permalink jsfiddle à l'exemple avec lequel je travaillais. http://jsfiddle.net/BrsmE/. Est ce que ça aide? – Collin