jquery用 bind 函数给元素绑定点击事件

本文探讨了使用jQuery处理点击事件的方法,特别是针对动态生成的元素。介绍了如何为动态生成的a标签绑定点击事件,并成功更新iframe的src属性。通过实践解决了循环中变量作用域的问题。

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

当每个段落被点击的时候,弹出其文本。

jQuery 代码:
$("p").bind("click", function(){
  alert( $(this).text() );
});


上面是官方文档给的例子,我现在想给我的a标签绑上函数,每次点击的时候,替换掉html页面中iframe标签的src的值,下面是代码:


for(var i=0; i<r.rows.length; i++){

localhostRows = r.rows;

$(".a_left_navigate").eq(i).bind('click',function(){

var strString1 = localhostRows[i].fileUrls;


var strString2 = strString1 .split(",")[0];


htmlSrc2 = strString2.split("Model\\")[1].replace("\\","/");


$("#iframe_show").attr("src",htmlSrc2);


});


}//for end


 刚开始我想绑定的时候随着for循环,i就会变化,就会从数组拿出不同的值,但火狐debug报错

TypeError: localhostRows[i] is undefined

我就想我把i的值变全局变量呢?说干就干,结果是全部a标签都绑定了数组最后一个值,我就郁闷了,我通过在bind函数绑定的click触犯函数中打印发现,绑定是在用户点击a标签之后再绑定上的,那时候for循环已经完了,值当然是最后一个了。


最后我的解决方法是把值赋给a标签的name值,再给a标签绑定,每次点击的时候就把点击a的name属性值拿出来,赋给iframe的src


for(var i=0; i<r.rows.length; i++){

var strString1 = r.rows[i].fileUrls;

$(".a_left_navigate").eq(i).attr('name',strString1);


} //for end 


$(".a_left_navigate").bind('click',function(){

$("#iframe_show").attr('src', $(this).attr('name')); 
});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值