onclick函数有未定义的调用者对象

时间:2016-05-31 09:37:15

标签: javascript

我已经阅读过有关类似问题的其他问题,但他们的解决方案对我没用。 这是我对函数的调用:

<li class="">
<a href="#" class="" onclick="updateProjectData(this, $ID, $Latitude, $Longitude)">
<span class="text">$Title</span>
</a>
</li>

这是我的功能:

function updateProjectData(caller, pid, lat, long)
{
    $.ajax({
        type: "GET",
        url: "...",
        data: "projectID=" + pid,
        success: function (data) {
            jQuery('#buildingDetails').fadeOut(200).html(data).fadeIn(200);
            $(document).ready(
                function() {
                    if ($('.imagefader').length) {
                        $('.imagefader').innerfade({
                            speed: 'slow',
                            timeout: 4000,
                            type: 'sequence',
                            containerheight: '245px'
                        });
                    }
                    //make the clicked a and li current
                    $('a').removeClass('current');
                    $('li').removeClass('current');
                    caller.addClass('current');
                    caller.parentNode.addClass('current');
                }
            );
        }
    });
    //tried it here too!
}

我也试过从ajax调用中取出调用者引用,但总是得到'undefined is not object'错误。

1 个答案:

答案 0 :(得分:1)

您误解了错误消息。 caller不是undefinedcaller.addClass是。

caller是一个DOM元素,addClass是一个jQuery方法。

您需要caller.classList.add("current")jQuery(caller).addClass("current")