在.done()中的$ .post之后如何使用$(this)?

时间:2013-09-04 17:05:29

标签: jquery post this

我希望此函数在完成ajax $ .post调用时更新div中的文本。一切正常,但在.done调用中,$(this)不再查看它所列出的元素。

任何帮助都将不胜感激。

//Add or Remove time from Time Off
        $(".timeChange").on("click", function(){
            var id              =   $(this).val();
            var timeCommand     =   $(this).attr("data-command"); 
            var currentTime     =   $(this).siblings('.timeHold').text();       

            $.post("humanResourceFunctions.php/",
                {
                    command         :   "modifyLeaveTime",
                    employee        :   id,
                    addSubtract     :   timeCommand,
                    time            :   currentTime
                }).done(function(data) {
                    $(this).siblings('.timeHold').text(data); 
                });
        });

问题在于上一次操作,$(this).siblings(' .timeHold')。text(data);

1 个答案:

答案 0 :(得分:3)

您只需要缓存对它的引用。

$(".timeChange").on("click", function(){
    var $this = $(this); //cache it

然后在......

.done(function(data) {
    $this.siblings('.timeHold').text(data); //note $this not $(this);
});