2016-05-31 3 views
1

Я прочитал другие вопросы по подобным вопросам, но их решения не сработали для меня. Вот мой вызов функции:Функция onclick имеет неопределенный объект-вызывающий объект

<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, но всегда получить «не определено не ошибка объекта.

+1

Что такое 'ID, $ Широта, $ Долгота'? Где вы его определили? – Rayon

+1

Этот бит работает нормально. Это серебристое cms. Изменены ли модификации класса вызывающего абонента. – Emily

ответ

1

Вы неверно истолковали сообщение об ошибке. caller не undefined но caller.addClass есть.

caller является элементом DOM и addClass является методом jQuery.

Вам либо нужен caller.classList.add("current"), либо jQuery(caller).addClass("current").

+0

Спасибо :) Ты заработал мой девственный тик! – Emily

Смежные вопросы