2015-12-24 162 views
0

我與jquery和prototype有衝突。我的fancybox不工作。如果我斷開原型腳本fancybox將工作。我已經嘗試過jQuery.noConflict,但它不適用於Fancybox。我嘗試了幾個選項,但無法使其工作。jquery與prototype.light衝突。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 
<script type="text/javascript" src="fancybox/source/jquery.fancybox.pack.js"></script> 

<script type="text/javascript" src="scripts/prototype.lite.js"></script> 
<script type="text/javascript" src="scripts/moo.fx.js"></script> 
<script type="text/javascript" src="scripts/moo.fx.pack.js"></script> 
<script type="text/javascript" src="js/image_fade.js"></script> 
<script type="text/javascript" src="js/responsive-tables.js"></script> 

<script type="text/javascript"> 
    var $j = jQuery.noConflict(); 
    $j(document).ready(function() { 
    $j(".fancybox").fancybox(); 
    }); 
</script> 
+1

這可能是因爲fancybox庫也帶有($)jquery標籤。請發佈您的錯誤並瞭解相關信息 – Rickert

+0

試試這個 –

回答

0

嘗試在IIFE包裝代碼:

<script type="text/javascript"> 
    (function($){ // use it securely using "$", won't conflict with other lib 
     $(document).ready(function(){ 
     $(".fancybox").fancybox(); 
     }); 
    })(jQuery); // <----pass jQuery 
</script> 
0

我給出的答案很抱歉沒有被解決的問題。

我有另一個jquery頁面上沒有衝突。這給了網站上的日期和實時。這工作正常。

<script type="text/javascript"> 
    var $time = jQuery.noConflict(); 

    $time(document).ready(function() { 

var currenttime = '{ACTUALDATE}'; 
var serverdate = new Date(currenttime); 
function padlength(what){ 
    var output=(what.toString().length==1)? "0"+what : what; 
    return output; 
} 
function displaytime(){ 
    serverdate.setSeconds(serverdate.getSeconds()+1) 
    var timestring=padlength(serverdate.getHours())+":"+padlength(serverdate.getMinutes())+":"+padlength(serverdate.getSeconds()); 
    $time("#servertime").html(timestring); 
} 
setInterval(displaytime, 1000); 

    }); 
    </script>