您的位置:首页技术文章
文章详情页

javascript - 通过ajax,在ul加载了全部数据,添加了ul li 单击事件,可是触发不了。

浏览:215日期:2024-03-31 09:09:30

问题描述

通过ajax,在ul加载了全部数据,添加了ul li 单击事件,可是触发不了,如果是ul事件的话能触发。

ajax

/*省市*/$('#proNum').click(function(){$.ajax({type:'post', url:'region/jsonRegion', dataType:'json', success:function(data){ $('#gj_disProvince').toggleClass('active');var listr ='';for(var i = 0; i < data.length; i++){ listr +='<li class=’com-li gj_dispro’ proNum=’'+data[i].id+'’>'+data[i].placename+'</li>';}$('#assessPro').html(listr); //添加全部城市 }}); });

实现图javascript - 通过ajax,在ul加载了全部数据,添加了ul li 单击事件,可是触发不了。

标签

<p id='gj_disProvince'> <input readonly='readonly'placeholder='省份' proNum='0'> <p class='p-r'><p class='down-box'> <ul id='assessPro'> </ul></p> </p></p>

事件

/*选择一个省 ,li[class=’com-li gj_dispro’] 触发不了*/ $('ul[class=’com-ul com-ul-288’]').click(function(){ alert(1); // 不明白为什么 ul 能触发,li就不行,//请教一下如何获取到选择中li的省市和id });

问题解答

回答1:

$(’selector’).on(’click’,’childSelector’,function(){})使用 on() 方法添加的事件处理程序适用于当前及未来的元素回答2:

因为ajax事件是异步执行的,你点击的时候,并没有li这个don结构

回答3:

循环时把id存在li的attr里<li c_id='' >点击事件 获取var cid = $this.attr(’c_id’);

回答4:

使用$parentNode.on(’click’,childNode,callback)来绑定事件 原理就是事件冒泡机制

回答5:

注意三点:1.事件注册函数应该在Ajax调用成功后再注册,可以在ajax的回调函数中调用事件注册函数,2.确保你的注册事件的函数未写错,你这儿事件函数写错了,直接给click赋值,然后是你的class选择器,没发现有元素的class值是你选择器中的值,如果没有当然选不到。3.确保在你点击事件之前,确保事件已经注册完成。

标签: JavaScript