棘手的jQuery操作,不确定我是否使用'this'属性

时间:2009-02-19 06:35:26

标签: jquery ajax events callback

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

我想使用data.Message以某种方式更改mycallback中的文本'hello'

我似乎无法确定强标记,并且我不确定我是否将正确的值传递给mycallback!

1 个答案:

答案 0 :(得分:2)

要使用ajaxcall中的数据更改strong文本,请尝试以下操作:

$(".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,但也有点混淆。然而,我可以衷心地推荐Douglas Crockfords Javascript: the good parts