自写的jQuery异步加载数据添加事件_jquery
程序员文章站
2022-04-29 20:44:56
...
几个月前在一个项目中涉及到树形栏,然后看了很多插件,觉得有点麻烦,于是自己写了一个,写着写着就出问题了。
当时项目是通过树形栏进行权限控制的,管理员可以对从数据库去的数据动态生成树形栏进行增删改查操作,可是用$(".XX").click();方法是不行的。
1、之前用的是jq1.4.3 ,jq1.7一下都可以使用live()方法,来实现该功能
$(‘#div').live(‘click',function(){
//do stuff
});
但是live方法也有不支持的事件,例如:toggle事件 ,遇到这个情况可以给他加个click事件,之后再来个模拟点击trigger事件就ok了
$('a').live('click',function(){
$(this).toggle(function(){
alert("q11");
//
alert($(this).attr("id"));
$(this).parent().children('ul').show();
},function(){
$(this).parent().children('ul').hide();
});
$(this).trigger('click');
/**
之前绑定的click事件,只有点击了才会触发toggle事件,所以就给他加上模拟点击事件,不需要点击直接出发
**/
});
2、jq1.7以上的就用on方法了,第一个属性为事件,第二个是 选择器,第三个是 执行的方法
$(document).on("click","#d1",function(){
alert("bbbbb");
});
当时项目是通过树形栏进行权限控制的,管理员可以对从数据库去的数据动态生成树形栏进行增删改查操作,可是用$(".XX").click();方法是不行的。
1、之前用的是jq1.4.3 ,jq1.7一下都可以使用live()方法,来实现该功能
复制代码 代码如下:
$(‘#div').live(‘click',function(){
//do stuff
});
但是live方法也有不支持的事件,例如:toggle事件 ,遇到这个情况可以给他加个click事件,之后再来个模拟点击trigger事件就ok了
复制代码 代码如下:
$('a').live('click',function(){
$(this).toggle(function(){
alert("q11");
//
alert($(this).attr("id"));
$(this).parent().children('ul').show();
},function(){
$(this).parent().children('ul').hide();
});
$(this).trigger('click');
/**
之前绑定的click事件,只有点击了才会触发toggle事件,所以就给他加上模拟点击事件,不需要点击直接出发
**/
});
2、jq1.7以上的就用on方法了,第一个属性为事件,第二个是 选择器,第三个是 执行的方法
复制代码 代码如下:
$(document).on("click","#d1",function(){
alert("bbbbb");
});
下一篇: JS自执行函数与jQuery扩展使用方法