0

我的 jQuery 函数有问题:

        /* 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();
        }); 
    });

当我在加载完整站点之前加载页面并单击链接时,不会阻止链接事件并且我收到错误消息。尽管网站未完全加载,如何确保始终阻止单击这些链接的事件?

访问网站

4

1 回答 1

0

将该 JavaScript 片段紧跟在标签中相关链接之后,并省略 $(document).ready 处理程序

这会导致代码在链接呈现到屏幕后立即执行

例如

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

(当然,jQuery 必须包含在这之前的某个地方)

于 2013-05-26T14:49:43.687 回答