关于js的click中function事件

本文探讨了在页面加载时AJAX请求被误触发的问题,通过对比旧代码和新代码,发现click事件中是否包含function()是关键。当直接绑定sendData()时,页面加载即触发请求;而用匿名函数包裹时,只在点击事件时触发。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

个人在使用之前的ajax请求进行修改,测试发现每次加载界面的时候都执行了ajax请求,后续再次点击,#btnSend没有再次触发.

再次测试:重新进入页面,先弹出alert("准备发送数据"),页面没有加载完成,点击之后页面才初始化完成,可以知道在页面加载完成之前执行了sendData(),而且该方法在点击发送事件.

经过旧文件和新文件的比对,差别在于click中有无包含function(),没有包含function的在页面初始化的时候初始化了click事件,所以就直接发送了数据,含有function的则在完成初始化完成后执行的点击事件才被执行.(做个记录避免再次碰到这类问题)

<script type="text/javascript">
		$(function(){
			//$("#btnSend").click(sendData());//使用此方法,页面加载就执行,后续点击事件就不执行
			$("#btnSend").click(function() {
				sendData();
			});
		});
		function sendData() {
			alert("准备发送数据");
			var trNO=$("#trNO").val();
			
			$.ajax({
				type:"post",
				url:"<%=ctxPath %>/test",
				data:{
					trNO:trNO,
					data:data
				},
				success:function(result)
				{
					alert("发送成功");
				},
				error:function()
				{
					alert("请求失败");
				}
			});
		}
	</script>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值