zoukankan      html  css  js  c++  java
  • 循环监听事件出错,只能监听最后一个

    (function(){	
    	    var i= 0;
    	    for (;i<value;i=i+1){
    	        (function(j){
    	        	var flip_id = "#flip"+i+"";
    	    		var panel_id = "#panel"+i+"";	    		
    	    		$(flip_id).click(function(){
    	    		   $(panel_id).slideToggle("slow");
    	    		});
    	    		
    	        })(i);
    	    }
    	})();

    普通监听要等到循环结束后才行,所以只能监听到最后一个。

    使用闭包可以监听所有的。

    闭包的代码



    原来的代码


    for(var i=0; i<value; i++){
    		//alert(i);
    		var flip_id = "#flip"+i+"";
    		var panel_id = "#panel"+i+"";
    //		alert(flip_id+" "+panel_id);
    		//$("div[id="+flip_id+"]").click(function(){
    		//   $("div[id="+panel_id+"]").slideToggle("slow");
    		//});
    		console.log(flip_id);
    		console.log("panel="+panel_id);
    		$(flip_id).click(function(){
    		   $(panel_id).slideToggle("slow");
    		});
    	}


  • 相关阅读:
    瀑布流
    轮播图
    封装动画的函数
    回到顶部带动画
    动画setInterval
    模拟滚动条
    放大镜
    刷新
    cookie
    拖拽
  • 原文地址:https://www.cnblogs.com/yan456jie/p/5369458.html
Copyright © 2011-2022 走看看