jquery label和radio 要阻止冒泡该怎么实现,return false不行

czx0619 2014-03-18 08:02:19
RT
使用了return false还是无法阻止冒泡
点击label的文字还是会执行两次click事件
点击radio就只会执行一次
<li >
<label onclick="search(this);return false">
<input type="radio" name="financingType" id="financingType" value="00101" />
项目融资
</label>
</li>

JS事件如下:

function search(obj){
var data=new Map();
data=getData(obj);
debugger
$.ajax({
type:'post',
url:'pro_actions',
data:{
data:data
},
success: function(data,textStatus){
alert("aa");
},
});
}


debugger会进入两次
求解,谢谢了
...全文
379 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
cotrs 2014-03-19
  • 打赏
  • 举报
回复
不错咯,积分送过来。这个网站,没钱途!
qqm05 2014-03-19
  • 打赏
  • 举报
回复
楼主,label有个for属性的,可以减少你的烦恼,请看示例代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script src="jquery-ui-1.10.4.custom/js/jquery-1.10.2.js"></script>
</head>

<body>
<ul>
<li >
<input  type="radio" name="financingType" id="financingType" value="00101" />
<label id="label1" for="financingType">项目融资</label>
</li>
<li >
<input  type="radio" name="financingType" id="financingType2" value="00102" />
<label id="label1" for="financingType2">项目融资222</label>
</li>
</ul>
<script>
$(function(){
	$("[name='financingType']").click(function(){
		alert("value:"+$(this).val());
	});
});
</script>
</body>
</html>
jch90526 2014-03-19
  • 打赏
  • 举报
回复
楼上正解,我再补充两句 有人认为 return false = stopPropagation() + preventDefault(), 其实是错的. return false 不但阻止事件, 还可以返回对象, 跳出循环等… 方便地一刀切而不够灵活, 滥用易出错. 但是不要滥用他,尤其是在复杂的页面时,你会被这个return false搞疯的
zhjdg 2014-03-19
  • 打赏
  • 举报
回复
你这跟jQuery 没关系。 return false 是阻止默认事件的。 再说,你放的那个位置,能阻止。。。。。。。。。。 再看看书吧,再写写代码吧。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style>
#lv0{
	
}
#lv1{
	width:200px;
	height:200px;
	background-color:red;
}
#lv2{
	width:100px;
	height:100px;
	background-color:blue;
}


</style>
</head>
<body id='lv0'>
<div id='lv1'>this is a test
<div id='lv2'>lv2</div>
</div>

<script>
function $(id){
	return document.getElementById(id);
}
$('lv0').onclick = function(e){
	
}
$('lv1').onclick = function(e){
	
}
$('lv2').onclick = function(e){
	e.preventDefault();
	e.stopPropagation();
}

</script>



</body>
</html>

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧