2016-05-04 16 views
0

我有一个jQuery自定义文件禁用或冲突我的其他jQuery文件,请如何解决此问题。请看下面: 我的自定义文件:如何解决jQuery confliect?

$(".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> 

我会更乐意如果这是解决。

+0

找不到任何冲突文件。你确定? –

+0

你使用两个不同版本的Jquery吗? –

+0

我刚刚编辑,冲突的文件现在可见 –

回答

1

我假设你肯定知道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范围内的其他脚本冲突。

+0

问题似乎没有关系多重包含jQuery版本,但与ajax重新加载内容相关 –

+0

@ A.Wolff我认为你可能是对的,在编写原始答案时,我假设OP已经检查了控制台错误 - 因此他为什么说它是一个标准亩ltiple jQuery /脚本冲突。 –

0

我能够只是包装它来解决这个问题:

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