-1

在我看来,我正在使用jQuery-1.7.2 .js 。当我使用第一个 js 时,错误不会出现,我执行任务时没有错误,但是当我包含我的第二个 js 时,我会遇到错误并且错误是 $(...).attr is not a function here is code

这是视图

     <a title="Minimize Chat Window" class="abc" id="minmax" href="#Minimize Chat Window" onclick="min_max(this);">

这是js

<script src="<?=base_url()?>js/libs/jquery-1.7.2.min.js"></script>
<script type="text/javascript" >

function min_max(i)
{
    var cls=$(i).attr('class');
    if(cls == 'abc')
    {
        $(i).removeClass('xyz');
    }
    else
    {
        $(i).addClass('xyz');
    }
}

但是当我在第一个之后或之前包含我的第二个 js 时

var cls=$(i).attr('class');

给出$(...).attr 不是函数的错误

请帮我找出我的问题。我认为它的 jquery 冲突。但我想在我看来同时使用这两个 js。谢谢

4

3 回答 3

2

为避免此类问题,请使用jQuery'snoConflict()函数,然后$()使用调用更改jQuery()调用。

看看文档

于 2013-03-12T07:57:06.103 回答
1

排除冲突var cls=$(i).attr('class');更改var cls=jQuery(i).attr('class');

在此处查看有关 noConflict 的更多信息:http: //api.jquery.com/jQuery.noConflict/

于 2013-03-12T07:53:07.323 回答
1

只需使用这一行var $ = jQuery.noConflict(); 在您的脚本标签开始之后,您可以使用$而不是Jquery

<script src="<?=base_url()?>js/libs/jquery-1.7.2.min.js"></script>
<script type="text/javascript" >

 var $ = jQuery.noConflict();

 function min_max(i)
 {
   var cls=$(i).attr('class');
   if(cls == 'abc')
   {
       $(i).removeClass('xyz');
   }
   else
   {
       $(i).addClass('xyz');
   }
}
于 2013-03-12T08:19:17.363 回答