Сложная операция jQuery, не уверен, что я использую свойство 'this' - PullRequest
0 голосов
/ 19 февраля 2009

Используя 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"));
};

Моя модель выглядит так:

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

Я хочу как-то изменить текст 'hello' в mycallback, используя data.Message

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

1 Ответ

2 голосов
/ 19 февраля 2009

Чтобы изменить текст в строгом соответствии с данными из 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 есть один , но он также немного запутан. Однако я могу от всей души порекомендовать Дугласа Крокфордса Javascript: хорошие части .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...