页面触发器与jquery 1.9冲突

时间:2013-08-22 16:12:21

标签: jquery jquery-plugins conflict

我正在使用揭密模式插件并将其设置为在打开的页面上自动加载并激活了cookie,并且效果很好。它运行jquery v1.6。我必须使用Nivoslider将其实现到使用v1.9的页面上。

当使用Nivoslider放置在页面上时,在页面加载时打开的触发器现在不再起作用了 - 但是在点击上显示仍然有效 - 所以1.6和1.9之间没有真正的冲突,只是它不再打开页面加载。

如果我删除1.9的链接,触发器再次起作用,但Nivoslider显然没有。有没有解决这个问题?如果您需要查看以下代码。感谢...

<link rel="stylesheet" href="popup/reveal.css"> 
<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.min.js">/script>
<script type="text/javascript" src="popup/jquery.reveal.js"></script>
<script type="text/javascript" src="popup/jquery.cookie.js"></script>
<script type="text/javascript"> 
jQuery(document).ready(function(){ 
if (jQuery.cookie('sale') != '1') { 
 jQuery('#myModal').reveal() 
    jQuery('#myModal').trigger('click'); 
    jQuery.cookie('sale', '1', { expires: 3}); } 
}); 
</script>  

<script type="text/javascript" src="slider/scripts/jquery-1.9.0.min.js"></script>
<script type="text/javascript" src="slider/jquery.nivo.slider.js"></script>
<script type="text/javascript">
$(window).load(function() {
$('#slider').nivoSlider({
   effect: 'fade', 
   animSpeed: 700, 
   pauseTime: 4000, 

});
});
</script>

3 个答案:

答案 0 :(得分:0)

由于每个人提供的性能下降,我强烈建议只在页面上使用一个库。我建议尝试更新reveal插件以使用jquery v9,或者找到更新的插件来实现相同的目标。

也就是说,如果这不可行,你可以使用jqueries no conflict选项来允许两个库一起运行:

http://api.jquery.com/jQuery.noConflict/

答案 1 :(得分:0)

为什么要加载2 versions of jquery试试这个,

<link rel="stylesheet" href="popup/reveal.css"> 

<!-- Use only the new version only like 1.9.0 -->
<script type="text/javascript" src="slider/scripts/jquery-1.9.0.min.js"></script>

<script type="text/javascript" src="popup/jquery.reveal.js"></script>
<script type="text/javascript" src="popup/jquery.cookie.js"></script>
<script type="text/javascript"> 
jQuery(document).ready(function(){ 
if (jQuery.cookie('sale') != '1') { 
 jQuery('#myModal').reveal() 
    jQuery('#myModal').trigger('click'); 
    jQuery.cookie('sale', '1', { expires: 3}); } 
}); 
</script>  

<script type="text/javascript" src="slider/jquery.nivo.slider.js"></script>
<script type="text/javascript">
$(document).ready(function() {//use document ready instead of windows load function
   $('#slider').nivoSlider({
      effect: 'fade', 
      animSpeed: 700, 
      pauseTime: 4000, 
   });
});
</script>

注意如果不起作用,请使用jquery migrate pluginfunctions

中删除了许多jquery 1.9 version

答案 2 :(得分:-1)

.live()方法自jQuery 1.7以来已被弃用,并已在1.9中删除。我们建议升级代码以使用.on()方法。要完全匹配$(&#39; a [data-reveal-id]&#39;)。现场(&#39;点击&#39;,功能(e),例如,你可以写

    $('a[data-reveal-id]').on('click', function(e) {
    e.preventDefault();
    var modalLocation = $(this).attr('data-reveal-id');
    $('#'+modalLocation).reveal($(this).data());
});