0

我有几行 jQuery 代码可以在点击链接时加载外部页面。

$(document).ready(function() {  
    $(".link").click(function (e) {
    e.preventDefault();      
    var $urlToLoad = $(this).attr('href'); 

    $("#loadarea").load($urlToLoad, function(data){
        $("#loading").fadeIn('fast').fadeOut('fast');
        $("#loadarea").hide().fadeIn('slow');       
        return false;
        });
    });      


}); 

这工作正常。但是,当我添加这一行在此页面上必不可少的附加代码时,会出现“$ 未定义”错误。

我已经在http://api.jquery.com/jQuery.noConflict/尝试了每一种技术,但是我无法解决冲突。

function goto(id, t){   
    $(".contentbox-wrapper").animate({"left": -($(id).position().left)}, 600);
    $('#slide a').removeClass('active');
    $(t).addClass('active');    
}

我试过 var jq=jQuery.noConflict(); 替换 $ 但这并不能解决问题。

我想我对 jQuery 的了解还不够,无法解决这个冲突,我非常感谢任何能够解释发生了什么的人,以便我可以从中学习。

所以总的来说,它看起来像这样:

<script>

 $(document).ready(function() { 
    $(".link").click(function (e) {
    e.preventDefault();      
    var $urlToLoad = $(this).attr('href'); 

    $("#loadarea").load($urlToLoad, function(data){
        $("#loading").fadeIn('fast').fadeOut('fast');
        $("#loadarea").hide().fadeIn('slow');       
        return false;
        });
    });      


}); 

function goto(id, t){   
    $(".contentbox-wrapper").animate({"left": -($(id).position().left)}, 600);
    $('#slide a').removeClass('active');
    $(t).addClass('active');    
}


</script>

然后我有一个内联代码来触发脚本。

(a class="active" href="#" onClick="goto('#kr', this); return false">测试

奇怪的是,即使出现错误,它也会在第二次点击时触发。

////////////////////////////////

通过转换内联 javascript 解决了冲突/错误。

感谢下面的黄教。

4

3 回答 3

1

我只想重写锚点

<a class="active" href="#" onClick="goto('#kr', this); return false">test</a>

<a class="active" href="#kr">test</a>

对于 jQuery

$('.active').on('click', function() {
    var $this = $(this);        
    var id = $this.attr('href');
    $(".contentbox-wrapper").animate({"left": -($(id).position().left)}, 600);
    $('#slide a').removeClass('active');
    $this.addClass('active');
    return false;
});
于 2013-03-26T18:31:17.407 回答
0
$(document).ready(function() {

});

应改写为:

jQuery(function($) {

});

这可能会帮助你。

于 2013-03-26T18:00:28.587 回答
0

这可能与您包含 js 文件的顺序有关,请确保 jquery 是第一个加载的文件。

于 2013-03-26T18:01:41.430 回答