发布:2023/12/7 15:22:28作者:大数据 来源:大数据 浏览次数:524
因为要异步加载一些东西,并且需要在使用append添加的元素上绑定click方法,就出现了失效的情况,jquery需要追加绑定事件。
出现这个问题的原因是,click事件只能作用在页面加载完毕后,整个页面的元素,对于后面通过append添加的元素,click是找不到的,自然就起不了作用了。on事件除了具备click本身的特点之外,对于新添加元素也可以找到。
当我请求ajax后,将得到得值添加到 元素id="launcher_frame_body" 后,在页面怎么也监听不到元素里面的各种事件
$("#launcher_frame_body").append(json.data);
在网上查找资料后,发现从1.9开始要用jquery.on()事件来获取未加载页面元素内容;
对该事件简要讲解
$(selector).on(events,[selector],[data],fn)
参数 描述
events 一个或多个用空格分隔的事件类型和可选的命名空间。
selector 可选。一个选择器字符串,用以过滤选定的元素,该选择器的后裔元素将调用处理程序。
如果选择是空或被忽略,当它到达选定的元素,事件总是触发。
data 可选。作为event.data属性值传递给事件对象的额外数据对象以供事件处理函数处理。
fn 该事件被触发时执行的函数。 false值也可以做一个函数的简写,返回false。
例:
$("#launcher_frame_body").on("mouseenter",".picBox",function(){
$(this). find(".picBox_in").show()
}).on("mouseleave",".picBox",function(){
$(this). find(".picBox_in").hide()
})
如果需要用到select的change事件,on暂时不提供该方法,建议用click替代,也可达到同样效果
这里顺便说下 $(this) 和 this 区别,$(this) 代表jquery对象,等同通过选择器如$("#id")获取的对象;而 this 代表的是html元素本身
————————————————
版权声明:本文为CSDN博主「Mrliam」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Liam1994/article/details/78543600
© Copyright 2014 - 2024 柏港建站平台 ejk5.com. 渝ICP备16000791号-4