jquery append动态添加的元素,选择器取不到

$('#list td,#list li').click(function(){

console.log('ppp');

location.href= $(this).data('href');

});

改为

$('#list').on('click','li',function() {

console.log($(this).data('href'));

location.href=$(this).data('href');

})


在网上查找资料后,发现从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元素本身

原文链接:https://blog.csdn.net/Liam1994/article/details/78543600

你可能感兴趣的:(jquery append动态添加的元素,选择器取不到)