2009-02-19 1 views
0

с помощью JQuery, я связывание некоторых тегов изображений с событием щелчка, как это:Tricky операции JQuery, не уверен, если я использую «это» свойство либо

$('.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")); 
}; 

Моим DOM выглядит следующим образом:

<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> 

Я хочу, чтобы изменить текст «привет» в mycallback каким-то образом с помощью data.Message

Я не могу точно указать сильный тег, и я не уверен, если я передаю правильное значение в mycallback!

+0

Когда вы запускаете его, что говорит msgbox? – CVertex

+0

Также, в чем проблема ?? не работает ли он так, как ожидалось? что вы видите, чего ожидаете? – CVertex

ответ

2

Чтобы изменить текст в сильный с данными из ajaxcall, попробуйте следующее:

$(".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); 
    }); 
} 

Похоже, вы немного не знаете, как использовать this -оператора, что вполне понятно. Однажды понятая, это мощная концепция. Я пробовал найти хорошую статью в сети. Quirksmode has one, но он немного смущен. Тем не менее я могу сердечно рекомендовать Дугласу Крокфорду Javascript: the good parts.