2013-01-21 36 views
0

简单的jQuery绑定函数为我调用了两次,我也在使用jQuery移动时也看到了这个问题。jquery绑定不止一次被调用

$(document).ready(function(){ 

$(window).bind("resize",function(){ 

$("#length").text($(window).width()); 
$("#length").show("slow"); 
$("#length").hide("slow"); 
}); 
}); 


<html> 
    <body> 
    <div id='length' style= display:none></div> 
    <div class="font size">1</div> 
    </body> 
</html> 

拨弄:http://jsfiddle.net/2Yy7Q/

回答

1

知名浏览器的行为,可能的解决方法:

http://jsfiddle.net/2Yy7Q/1/

$(document).ready(function() { 
    (function() { 
     var timeout; 
     $(window).bind("resize", function() { 
      clearTimeout(timeout); 
      timeout = setTimeout(function() { 
       $("#length").text($(window).width()); 
       $("#length").show("slow"); 
       $("#length").hide("slow"); 
      }, 50); 
     }); 

    })(); 
}); 

注意您可以设置超时时间为0,50是给你的想法

+0

问题的原因? – sij

+0

Here you go:http://stackoverflow.com/questions/5534363/why-does-the-jquery-resize-event-fire-twice – kayen