2009-02-19 5 views
0

utilisant jQuery, je lient des balises d'image avec un événement click comme celui-ci:opération jQuery Tricky, pas sûr si j'utilise « cette » propriété soit

$('.imageClass > a > img').bind('click', onImageClick); 

this.onImageClick = function() { 
    $.post("/blah/123", { test : 'a' }, function(data) { myCallback(this, data); }, "json"); 
} 

this.myCallback(event, data) { 
    alert($(event).parent.attr("href")); 
}; 

Mon DOM ressemble à ceci:

<div class="imageClass"> 
    <a href="#"><img src="/images/1.jpg" alt="1"></a> <strong>hello</strong> 
    <a href="#"><img src="/images/2.jpg" alt="2"></a> 
</div> 

Je veux modifier le texte « bonjour » en quelque sorte moncallback en utilisant data.Message

Je ne peux pas sembler à la broche point de l'étiquette forte, et je ne suis pas sûr si je passe la valeur correcte dans mycallback non plus!

+0

Lorsque vous l'exécutez, que dit le msgbox? – CVertex

+0

Aussi, quel est le problème ?? Ne fonctionne-t-il pas comme prévu? qu'est-ce que tu vois, qu'attends-tu? – CVertex

Répondre

2

Pour modifier le texte fort avec les données de l'ajaxcall, essayez ceci:

$(".imageClass > a > img").click(on_image_click); 

function on_image_click() { 
    var image = this, strong = image.parent().next(); 
    $.getJSON("/blah/123", {test: 'a'}, function (data) { 
     strong.text(data.Message); 
    }); 
} 

Il semble que vous êtes un peu incertain comment utiliser le this -operator, ce qui est compréhensible. Une fois compris, c'est un concept puissant. J'ai essayé de trouver un bon article sur le net. Quirksmode has one, mais il est aussi légèrement confus. Je peux cependant recommander chaudement Douglas Crockfords Javascript: the good parts.

Questions connexes