大家好!
我的jquery轮播广告中,给ul添加事件委托,只有子元素li可以触发,代码如下:
//为index_box的ul添加鼠标进入事件
var adv_this=this;
$('#banner .index_box').on('mouseenter','li',function(){
//只有li可以响应事件
//处理函数中:
//用index检查当前li在index_box>li中的下标i保存在变量target中
var target=$('#banner .index_box>li').index(this);
console.log(target);
//获得f0Imgs数组中0位置的元素的i保存在old中
var old=f0Imgs[0].i;
console.log(old);
//调用moverLeft(target-old)
adv_this.moveLeft(target-old);
});
}
-----------------------------------------------------
adv_this.moveLeft(target-old)//这条语句要调用后边的左移方法,但因为this指的不是该对象,我在委托事件外折了一个变量 var adv_this=this,指代该函数,这样写我的左移功能可以实现,但是这么写对吗?有没有更好的方法?
我想到的另一种方法是 $('#banner .index_box').on('mouseenter','li',(e)=》{
var target=$('#banner .index_box>li').index(e.target);
..............
.............
this.moveLeft(target-old);
});
这种方法使this指代该对象,可以调用moveLeft方法,但是我li外层由a元素包裹,e.target,事件源是a,我想到.用target.nodeName===‘’LI,但是功能实现不料,请问谁知道怎么回事?
这是我的html代码,由jq动态生成的;
jquery轮播广告问题,请教各位~
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答
悬赏问题
- ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
- ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
- ¥20 有关区间dp的问题求解
- ¥15 多电路系统共用电源的串扰问题
- ¥15 slam rangenet++配置
- ¥15 有没有研究水声通信方面的帮我改俩matlab代码
- ¥15 ubuntu子系统密码忘记
- ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
- ¥15 保护模式-系统加载-段寄存器
- ¥15 电脑桌面设定一个区域禁止鼠标操作