jQuery更新后,脚本不再起作用了

时间:2013-01-18 16:16:16

标签: jquery

我刚刚将我的jQuery从jquery-1.6.1.min.js更新为jquery-1.8.2.js,现在这段代码不再有用了:

<script type='text/javascript'>
$(window).load(function(){
    $('.freezebg').click(function() {
        var ftop = $('.sort-wrap').offset().top - $(window).scrollTop();
        var fleft = $('.sort-wrap').offset().left;
        $('.sort-wrap').css({position: 'fixed', left: fleft + 'px', top: ftop + 'px'});
});
$(".unfreezebg").click(function() {
    $('.sort-wrap').css({position: 'absolute',left:'auto',top: 'auto'});
        return false;
    });
});
</script>

<script type='text/javascript'>
$(document).ready(function() {
    $("#cboxOverlay").addClass("unfreezebg");
});
</script>

有没有人知道为什么?

2 个答案:

答案 0 :(得分:0)

尝试.on('load', handler),因为.load()在1.8中已弃用。

<script type='text/javascript'>
   $(window).on('load',function(){
    $('.freezebg').click(function() {    
      var ftop = $('.sort-wrap').offset().top - $(window).scrollTop();
      var fleft = $('.sort-wrap').offset().left;
      $('.sort-wrap').css({position: 'fixed', left: fleft + 'px', top: ftop + 'px'});
    });
    $(".unfreezebg").click(function() {
      $('.sort-wrap').css({position: 'absolute',left:'auto',top: 'auto'});   
      return false;   
    });
   });
</script>

答案 1 :(得分:0)

.on是“新方式”:

<script type='text/javascript'>
   $(window).on('load',function(){
    $('.freezebg').on('click', function() {    
      var ftop = $('.sort-wrap').offset().top - $(window).scrollTop();
      var fleft = $('.sort-wrap').offset().left;
      $('.sort-wrap').css({position: 'fixed', left: fleft + 'px', top: ftop + 'px'});
    });
    $(".unfreezebg").on('click', function() {
      $('.sort-wrap').css({position: 'absolute',left:'auto',top: 'auto'});   
      return false;   
    });
   });
</script>

.on现在是标准,您应该开始使用它,因为它同时适用于.click(....live('click'...