如何解决jQuery冲突



我有一个jQuery自定义文件,它正在禁用或与我的其他jQuery文件冲突,请我如何解决此问题。请参阅以下内容:我的自定义文件:

$(".search").keyup(function() 
{ 
var searchid = $(this).val();
var dataString = 'search='+ searchid;
if(searchid!='')
{
    $.ajax({
    type: "POST",
    url: "search.php",
    data: dataString,
    cache: false,
    success: function(html)
    {
    $("#result").html(html).show();
    }
    });
}return false;    
});

冲突文件:

<script src="js/jquery.isotope.min.js"></script>
<script src="js/nprogress.js"></script>

如果这个问题得到解决,我会非常高兴。

我假设您知道某些jQuery是冲突的-您已经检查了控制台错误等。

您可以将jQuery封装在一个自动执行的匿名函数中,如下所示:

(function($) { 
  $(".search").keyup(function() 
  { 
  var searchid = $(this).val();
  var dataString = 'search='+ searchid;
  if(searchid!='')
  {
    $.ajax({
    type: "POST",
    url: "search.php",
    data: dataString,
    cache: false,
    success: function(html)
       {
         $("#result").html(html).show();
       }
     });
   }return false;    
  });
})(jQuery);

编辑-对上面发生的事情做一点解释。为了防止与其他脚本/框架发生任何潜在冲突,我们将jQuery对象作为参数传递给我们的函数(因此为function($))。这样做的好处是,您现在可以随意在函数中本地使用$。不用担心与global作用域上的其他脚本发生冲突。

我只需要用包装就可以解决这个问题

$(document).ready(function() {  
//-----
});

相关内容

  • 没有找到相关文章

最新更新