jquery事件重复绑定

动态的append添加的html代码,他所绑定的事件会失效

后面找到原因:是因为这些动态加载的这些HTML页面是在列表数据页面的HTML元素,css,js代码加载完后,再添加的HTML元素,

在浏览器解析到图一的页面元素时,解析到js的这些绑定标签事件的js代码的时候,这些绑定事件的标签元素还没有生成,

(因为js代码加载完后,才会有这些绑定事件的标签),所以这些JS代码的绑定的事件,根本就没有绑定到这些动态加载的标签上,所以事件不会触发。

解决方法:

$(selector).delegate(childSelector,event,data,function)

参数

描述

childSelector

必需。规定要附加事件处理程序的一个或多个子元素。

event

必需。规定附加到元素的一个或多个事件。

由空格分隔多个事件值。必须是有效的事件。

data

可选。规定传递到函数的额外数据。

function

必需。规定当事件发生时运行的函数。

但是此项目局限太大,无法这样修改,所以将需要绑定的部分封装成一个函数,待代码添加后再次执行一次,也就是重新绑定事件,但是jquery绑定事件不会覆盖已经有的事件,而是重复添加事件,所以每次添加时间是需要解绑然后在绑定事件

 

关于jquerytext()方法

例如有这样的html结构


获取每个span里面的文本,我首先想到的是console.log($('.box .title').text())

然而得到的结果虽然是 常规课时连自习,但是这个数组的长度却不是2,而是7,每一个字就是一个数组元素,

text()方法只有准备的定位到元素上才能获取到文本

console.log $('.box .title'))输出后发现是对象数组。


于是这样获取到了文本

console.log($('.box .title')[0].innerHTML)或者这样$('#' + i + ' .title').text()通过精准的获取后,才正常显示了文本。





猜你喜欢

转载自blog.csdn.net/qq_37199582/article/details/80952258