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

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

 

<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);
    });

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值