我已经阅读过有关类似问题的其他问题,但他们的解决方案对我没用。 这是我对函数的调用:
<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'错误。
答案 0 :(得分:1)
您误解了错误消息。 caller
不是undefined
,caller.addClass
是。
caller
是一个DOM元素,addClass
是一个jQuery方法。
您需要caller.classList.add("current")
或jQuery(caller).addClass("current")
。