如题
现在我有4个按钮控件:id分别为'b1'、'b2'、'b3'、'b4'
有4个div id分别为'div1'、'div2'、'div3'、'div4'
我想要通过for循环和live()函数将每个按钮的click事件分别绑定相应的div的一个animate动作。比如按钮id为'b1',点击后'div1'会给出相应动作、按钮id为'b2',点击后'div2'会给出相应动作,以此类推。
但是现在实现不了。FF下不报错。ie下报jquery.js文件的一段说不支持apply方法。
请问是什么问题,该如何实现我想要的效果呢?
:oops: 第一次发帖,如果问题太傻什么的请大家多多包涵。
代码如下:
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
送完整demo:
[code="html"]
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
1 | 2 | 3 | 4 |
[/code]
[code="java"]
$(document).ready(function(){
for(var i = 1; i <= 4; i++ )
$("#b"+i).click(function() {
$("#div"+i).slideToggle();
});
});
});
[/code]
$(document).ready(function(){
for(var i = 1;i<=4;i++ )
$("#b"+i).live('click',function(i){ //知道function里的i 是有问题的
$("#div"+i).slideToggle();
});
});
正确的应该是
for(var i = 1;i<=4;i++ )
$("#b"+i).live('click',+function(i){ return function(){
$("#div"+i).slideToggle();
}}(i));