2013-05-26 3 views
0

Я проблемы с моей функцией JQuery:Предотвратить клику перед JavaScript загружаются

 /* Vertical Profil Navigation */  
    $(document).ready(function() { 
     function ajaxLoading(obj){ 
      var dataString = obj.attr('href'); 

      if(obj.attr('rel') != '#default'){ 
       $.ajax({ 
        type: "GET", 
        url: "profile.php", 
        beforeSend: function() { $("#countrydivcontainer").html('<h2 class="title">Loading</h2><div style="text-align:center;"><img src="images/loader.gif" /></div>'); }, 
        data: dataString, 
        success: function(data){ 
         $("#countrydivcontainer").html(data); 
        } 
       }); 
      } 
     } 

     $('.vnav-item.profile').on('click', function(e){ 
      ajaxLoading($(this)); 
      e.preventDefault(); 
     }); 
    }); 

Когда я загружаю страницу и нажмите на ссылку до полного сайта загружается, событие ссылки не помешало и Я получаю сообщение об ошибке. Как я могу гарантировать, что клик по этим ссылкам всегда предотвращается, хотя сайт не загружен полностью?

Visit site

ответ

0

Поместите этот фрагмент JavaScript сразу после ссылки на вопрос в тегах, и опустить $ (документ) .ready обработчик

Это вызывает код, который будет выполняться сразу же после того, как ссылка оказана экран

eg

<a href="..." class="vnav-item profile">Here</a> 
<script> 
    $('.vnav-item.profile').on('click', function(e){ 
     ajaxLoading($(this)); 
     e.preventDefault(); 
    }); 
</script> 

(Конечно, JQuery должна быть где-то включен до этого)

+0

К сожалению, это не работает, если я попробовать это! – enyce12

+0

Если у вас есть ошибки в консоли, обязательно исправьте их. 'ajaxLoading' должен быть определен и до этого (который вы изначально делали в вашем готовом обработчике документов. Если вы не используете HTML5, вам нужно сделать'

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