javascript - 如何解决 jQuery 冲突?

标签 javascript jquery ajax keyup

我有一个 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($))。这样做的好处是您现在可以在函数内随意使用 $ 。不用担心与全局范围内的其他脚本发生冲突。

关于javascript - 如何解决 jQuery 冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37022718/

相关文章:

javascript - 如何从异步调用返回响应?

php - 如何使用 jQuery 转义表单输入中的 "&"符号字符

javascript - 语法错误: Unexpected end of input (Probably missing brace)

javascript - 如何将数组作为在 Javascript 中添加的项目进行排序?

javascript - for循环里面的闭包,里面的IIFE是做什么用的?

javascript - DataTables:无法读取未定义的属性样式

jQuery 改变 css 背景颜色

javascript - 如何使前置元素可拖动

javascript - 如何循环遍历2个对象数组并通过匹配id进行合并

javascript - 如何将 AJAX 请求中的数据写入 VUE JS 中的数据?