网站首页 > 基础教程 正文
大家一定遇到过在for循环中创建html元素,并且绑定事件的情况,
实际的效果,发现最后一个元素的事件将会覆盖前面所有元素的事件,如下面的代码:
for (int i = 0; i < 10; i++) {
var p=$("<p></p>");
p.html(i);
var url="http://localhost/p?id="+i;
p.click(function(){
window.open(url);
});
$("body").append(p);
}
以上代码,目测看没有什么问题,但是实际情况是,所有的p元素的click事件都是相同了,最后一次的事件覆盖了前面所有的事件,
url都变成了最后一次的,这应该是jquery的一个bug
那应该如何解决呢?
我稍作调整,改成以下的就可以了
for (int i = 0; i < 10; i++) {
var p=$("<p></p>");
p.html(i);
var url="http://localhost/p?id="+i;
p.attr("url",url);
p.click(function(){
window.open($(this).attr("url"));//此处不能直接写url
});
$("body").append(p);
}
这样,每个p标签的事件都是独立的了。
网上看了听说可以使用数组的方法解决,希望有更优雅的解决方法,希望大家评论区讨论贡献
- 上一篇: Java学习路线总结
- 下一篇: javaScript数组的遍历操作
猜你喜欢
- 2024-11-24 前端移动开发基础HTML5丶CSS3+零基础Web前端开发工程师高端培训
- 2024-11-24 前端JQuery异步加载文件机制
- 2024-11-24 深圳嘉华学校:什么是JQuery?
- 2024-11-24 jQuery文档抄录
- 2024-11-24 jquery是干什么的--乐字节前端
- 2024-11-24 如何使用 JavaScript 或 jQuery 获取元素的所有属性
- 2024-11-24 jQuery是什么?如何使用?
- 2024-11-24 GO语言全栈大纲
- 2024-11-24 jquery1.9以上版本.toggle()的替代实现方法
- 2024-11-24 jQuery3.6.0发布,存在JSONP错误也返回JSON
- 最近发表
-
- 语言教育项目实战之一:Ubuntu下安装Python环境
- spark+python环境搭建(spark环境搭建方式)
- VSCODE搭建python开发环境教程(vscode开发python 必备插件)
- 阿六带你用python appium搭建app自动化测试环境
- 【200920】在Windows上搭建Python2.7环境
- DevOps系列之——python编译环境搭建
- 在Mac中使用pyenv管理Python版本:从安装到虚拟环境的全流程指南
- python使用技巧之环境搭建(办公自动化方向)
- 使用IDEA写Python之pytest环境搭建及...
- Python+Appium环境搭建与自动化教程
- 标签列表
-
- jsp (69)
- gitpush (78)
- gitreset (66)
- python字典 (67)
- dockercp (63)
- gitclone命令 (63)
- dockersave (62)
- linux命令大全 (65)
- pythonif (86)
- location.href (69)
- dockerexec (65)
- tail-f (79)
- queryselectorall (63)
- location.search (79)
- bootstrap教程 (74)
- deletesql (62)
- linuxgzip (68)
- 字符串连接 (73)
- html标签 (69)
- c++初始化列表 (64)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)