2016-05-04 24 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() { 
//----- 
});