Ajax 如何解决jQuery冲突

Ajax 如何解决jQuery冲突,ajax,jquery,Ajax,Jquery,我有几行jQuery代码,它们在单击链接时加载外部页面 $(document).ready(function() { $(".link").click(function (e) { e.preventDefault(); var $urlToLoad = $(this).attr('href'); $("#loadarea").load($urlToLoad, function(data){ $("#loading").fade

我有几行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;
        });
    });      


}); 
这个很好用。然而,当我添加这一行附加代码时,这在本页上是必不可少的,“$IsUndefined”错误就会出现

我尝试过每一种技巧,但我无法解决冲突

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>

$(文档).ready(函数(){
$(“.link”)。单击(函数(e){
e、 预防默认值();
var$urlToLoad=$(this.attr('href');
$(“#加载区域”).load($urlToLoad,函数(数据){
$(“#加载”).fadeIn('fast').fadeOut('fast');
$(“#加载区域”).hide().fadeIn('slow');
返回false;
});
});      
}); 
函数goto(id,t){
$(.contentbox包装器”).animate({“left”:-($(id.position().left)},600);
$(#幻灯片a')。removeClass('active');
$(t).addClass(“活动”);
}
然后我有一个内联代码来启动脚本

(a class=“active”href=“#”onClick=“goto('#kr',this);返回false”>test 奇怪的是,即使有错误,它也会在第二次点击时触发

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

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

感谢下面的黄主义

$(document).ready(function() {

});
应改写为:

jQuery(function($) {

});

这可能对您有所帮助。

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

我只需从

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

你有一个可以看到的实时URL吗?你在哪里添加了这个函数?通常是未定义的,这意味着jquery文件没有被调用,或者你的函数在文件被调用之前就被使用了。我在中一起使用它们。它们不是分开的;我把它分开,以清楚地显示是哪一行引起了冲突。@Matthew-在这里张贴这个脚本标记,供su使用您是否正在为jQuery和内联代码使用单独的脚本标记?我建议您删除内联onclick,并使用jQuery处理使用.on的单击事件。这几乎像是一个赛车问题。如上所述,我尝试了jQuery noConflict API页面中提到的所有方法。我已经尝试过了;我不会在这里提出问题如果我没有尝试过所有已知的常用方法。我非常尊重堆栈溢出;在我尝试先解决问题之前,我不会发布任何问题。同时,这个答案对我完全有效,所以谢谢:)这为我解决了问题。所以我想我今天学到了一些新东西。内联javascript很糟糕。我需要再多研究一点,但是非常感谢。顺便说一句,我怎么能选择这个回答作为“答案”?或者说没有这样的事情?
<a class="active" href="#kr">test</a>
$('.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;
});