ajax原生为什么else会执行2次,为什么这里的alert会执行2次?

看了一下别人的评论,综合了一下,我觉得,这个问题的产生不是由于事件冒泡,而是由于label标签的使用(而且我觉得楼主这段代码$(this).parent('.toggle').siblings('.toggle').children('label').children('span').removeClass('input-checked');可以不用写呀。)。可以通过以下方式证明:

1.证明不是事件冒泡,使用 jQuery中的stopPropagation() 方法可以只阻止一个事件起泡。

js代码如下修改:

$('label').click(function(event){

//$(this).children('span').addClass('input-checked');

console.log(event.target);

var value = $(this).children('input').val();

//$(this).children('span').removeClass('input-checked');

//alert(value);

//console.log(value);

//alert(value);

//return false;

event.stopPropagation();

});

会发现输出的结果是:s01e01

不加该段代码也是这样的,因此不是事件冒泡行为。至于有的层主说用return false,它是阻止了默认的行为(在这里叫做关联行为吧哈哈,是由于label把span和input关联在一起,用return false是取消了关联行为吧)。

2.证明是由于label的关联效果。

我将楼主的代码修改为如下:

s01e01

s01e02

s01e03

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值