`
darepanhf
  • 浏览: 5812 次
  • 性别: Icon_minigender_2
  • 来自: 南京
社区版块
存档分类
最新评论

动态生成的内容再次点击时失效

    博客分类:
  • JS
 
阅读更多

实现这样一个功能,跟淘宝类似的在下单时选择地址,同时可以更改默认地址,点击切换文字

 

<ul class="address-list clearfix">
				<li class="on">
					<div class="alpad">
						<p class="alname"><span class="cHtml"><i class="almo">默认地址</i></span><strong>林志颖1 收</strong></p>
						<p class="f12">浙江省&nbsp;&nbsp;杭州市&nbsp;&nbsp;上城区<br/>平海路14号平海公寓403室<br/>352229********0019<br/>137****377</p>
						<span class="aldoing"><a href="javascript:void(0)">修改</a>|<a href="javascript:void(0)" class="aldel">删除</a></span>
					</div>
				</li>
				<li>
					<div class="alpad">
						<p class="alname"><span class="cHtml"><a href="javascript:void(0)" class="bemo">设为默认</a></span><strong>林志颖2 收</strong></p>
						<p class="f12">浙江省&nbsp;&nbsp;杭州市&nbsp;&nbsp;上城区<br/>平海路14号平海公寓403室<br/>352229********0019<br/>137****377</p>
						<span class="aldoing"><a href="javascript:void(0)">修改</a>|<a href="javascript:void(0)" class="aldel">删除</a></span>
					</div>
				</li>
			</ul>

    $(".bemo").click(function(){
    	var almo = $("<i class='almo'>默认地址</i>");
    	var bemo = $("<a href='javascript:void(0)' class='bemo'>设为默认</a>");
    	var otheralmo = $(this).parents("li").siblings().find(".almo");
    	$(this).parent().html(almo);
        otheralmo.parent(".cHtml").html(bemo);
    });

 

 

 

一开始是这样写的,点击当前元素,更换内容,后来发现这样走第一遍是可以的,第二遍就走不动了。百度了很久,不知道什么原因,后来查到,动态生成的元素,要用on来进行js切换;

 $('.demo').click(function(){})//这种写法  dom中现在有的bemo类会绑定事件,也就是说页面中原本就存在的元素都会被绑定事件,而后来新加的bemo元素就没有这个事件了;
$(document).on("click",".bemo",function(){}), 所有的bemo类元素都会执行这个事件 不管是新加的还是后加的;

正确的编写方式是:

    $(document).on("click",".bemo",function(){
    	var almo = $("<i class='almo'>默认地址</i>");
    	var bemo = $("<a href='javascript:void(0)' class='bemo'>设为默认</a>");
    	var otheralmo = $(this).parents("li").siblings().find(".almo");
    	$(this).parent().html(almo);
		otheralmo.parent(".cHtml").html(bemo);
    });

 

 

  • 大小: 12.8 KB
分享到:
评论

相关推荐

    关于动态生成dom绑定事件失效的原因及解决方法

    之前做项目都是直接用jquery的bind绑定事件,不过当时都不是动态生成dom元素,而是已经页面中原本存在的dom元素进行事件绑定,最近在测试给动态生成的dom绑定事件的时候发现事件失效,于是就测试了一下: ...

    随机生成验证码风很凉

    刷新验证码是指当用户在尝试某一操作时,如果系统检测到异常或者需要再次确认用户身份,会重新生成一个新的验证码。这种机制有助于提高安全性,因为即使攻击者能够猜出或获取到一个验证码,该验证码在下一次刷新后也...

    文章管理系统

    9.纠正内容页图文排版时,后台设置图片间距无效bug 10.纠正后台采集结果预览,列表小图为绝对路径时没显示出来的BUG 11.整合5.14~11.4的更新包 2011年11月4日 BUG修复 1.修复11.1补丁造成的文章内容摘要过滤HTML...

    jsp中实现验证码刷新功能

    - `rand.jsp`再次生成验证码并存储在session中,然后返回生成的验证码图像的Base64编码。 - JavaScript函数接收到响应后,更新`&lt;img&gt;`标签的`src`属性,设置为Base64编码的data URL,这样浏览器就会加载新的验证码...

    Python HTMLTestRunner测试报告view按钮失效解决方案

    这样,当再次运行测试并生成报告时,“View”按钮将能够正常加载页面内容,从而更方便地进行测试结果的查看与分析。 #### 总结 本文详细介绍了如何解决使用`HTMLTestRunner`生成的测试报告中“View”按钮失效的...

    DJCMS影视程序 v3.0.2011.05.6.rar

    网站运营模式可以在后台一键切换(PHP动态/HTML静态2中目录结构),一键生成当**数据、一键生成全站、一键生成分类等等,让静态生成更加智能,只需一次点击全部搞定,生成速度飞快(1万数据5分钟以内全站生成)、更快更...

    word转化为chm工具

    确认设置无误后,点击“生成”或“转换”按钮,WordToCHM将开始处理Word文档,生成对应的CHM文件。 **步骤5:检查和优化** 生成完成后,打开CHM文件检查内容是否完整,格式是否正确。如有必要,可以返回步骤3对...

    ansys 1。2安装详解

    - **生成新 license**:如果上述方法无效,可以再次运行 C 盘 "MAGNiTUDE" 文件夹下的 `ap121-calc.exe` 来生成新的 license 文件。 在安装 ANSYS 时,最好在安装成功后立即备份系统,以防后续软件冲突导致 ANSYS ...

    关于MDK软件不能模拟仿真STM32的问题解决方法

    然后重新编译程序,并再次点击开始调试,此时PC的值应该已经不再是0,可以正常进行模拟仿真。 在解决了PC和SP的自动装载问题后,存储器访问问题通常可以通过类似的方法来解决,即通过MAP命令为外设寄存器地址赋予...

    药店计算机操作规程完整.docx

    - 选择“近效期催销表”,设置临近失效天数,点击“查询”。 #### 三、门店报损报溢流程 - **操作步骤**: - 在商品编号输入药品名称首字母。 - 在报损数量或报溢数量处填写具体数字,并选择损溢原因。 - 存盘...

    SpringSecurity实现表单安全登录、图形验证的校验、记住我时长控制机制、第三方登录

    在表单提交时,需要对用户输入的验证码与服务器生成的验证码进行比对,一致才能通过验证。这一步骤可以防止恶意自动化的登录尝试。 **记住我时长控制机制** SpringSecurity的"记住我"功能允许用户在一段时间内无须...

    ansys12.1安装图文教程分享.pdf

    在安装license时可能会出现WARNING,只需点击OK继续,然后使用之前生成的license文件完成授权。 安装过程中,系统状态和网络配置至关重要。安装成功的可能性与系统的兼容性有关,通常新系统和台式机更易于安装。...

    天正建筑2014注册机_201310260831.rar

    5. 有时,软件可能会提示无法连接到服务器验证,此时选择“手动激活”,并根据注册机提供的信息填写到软件的相应位置,然后再次点击“激活”。 6. 完成激活后,天正建筑2014即可无限制地使用所有功能。 尽管注册机...

    javascript实现数字配对游戏的实例讲解

    我们需要一个布尔值变量来追踪游戏是否已经开始,游戏进行中时,开始按钮应失效,计时器持续计时。当游戏结束,布尔值更改为游戏结束状态,计时器停止,显示游戏用时,开始按钮再次启用。 实现游戏界面通常使用HTML...

    让submit只提交一次

    在`&lt;form&gt;`标签中添加`onsubmit`事件,当表单提交时,将submit按钮置为禁用状态,从而防止用户再次点击提交。 2. **使用Token机制**:在每次表单提交前,服务器会生成一个唯一的Token,并将其发送到客户端。客户端...

    VS2010断点进不去解决方法

    The source code is different from the original version.” 这个错误提示表明当前设置的断点不会被触发,因为源代码与编译生成的可执行文件所对应的源代码版本不一致。这可能是由于多种原因造成的,例如源文件已...

    ASP.NET中防止刷新页面造成表单重复提交

    1. **使表单按钮失效**:即在用户点击提交按钮后使其失效,以确保表单只能被提交一次。这种方法虽然简单有效,但用户体验较差,尤其是在用户不小心多次点击提交按钮时,可能会导致数据丢失或操作中断。 2. **清除...

    struts 令牌机制(Token)

    1. **生成令牌**:当用户请求一个需要防止重复提交的表单时,服务器在处理请求时会生成一个唯一的令牌,并将其存储在服务器的session中,同时将该令牌作为隐藏字段添加到表单中。 2. **传递令牌**:当表单呈现给...

    JAVA做的考试系统

    - “开始考试”按钮触发试题显示,这可能涉及到数据库查询和JSP/Servlet技术,动态生成题目。 - 题目间的导航有错误检查,确保用户在合法范围内移动,避免越界操作。 8. **题库管理**: - 题库维护功能允许查看...

    CPC电子申请客户端补正中间文件技巧.pdf

    然而,在答复专利局的补正意见或主动提交补正时,可能会遇到一些技术性的问题。针对描述中提到的情况,我们可以详细解析一下正确的操作步骤和技巧。 1. **补正书的准备与选择**: - 当收到专利局的补正通知后,你...

Global site tag (gtag.js) - Google Analytics