js onclick 调用函数失败,求助,,怀疑onclick 不能识别jquery 的this。
<tronclick="GetPerson(<%:item.id%>);">.......</tr><scripttype="text/javascript"src="~...
<tr onclick="GetPerson(<%:item.id %>);">.......</tr>
<script type="text/javascript" src="~/img/jquery.js"></script>
<script type="text/javascript">
function GetPerson(id) {
if ($(this).index() != 0) {
$(this).siblings("#uperson").remove();
$(this).after("<tr id=\"uperson\"><td colspan=\"4\">data loading</td></tr>");
$.get("/Practitioner/", { id: id }, function (data) {
$("#uperson").html(data);
});
}
}
</script> 展开
<script type="text/javascript" src="~/img/jquery.js"></script>
<script type="text/javascript">
function GetPerson(id) {
if ($(this).index() != 0) {
$(this).siblings("#uperson").remove();
$(this).after("<tr id=\"uperson\"><td colspan=\"4\">data loading</td></tr>");
$.get("/Practitioner/", { id: id }, function (data) {
$("#uperson").html(data);
});
}
}
</script> 展开
3个回答
展开全部
你这结构压根没写全呀,GetPerson()这个函数到底是在哪里调用的啊?是元素的onClick属性么?
你的这个this其实是想访问触发该函数的元素?
如果都是的话,其实不用他们说的什么传值,因为在浏览器封装函数的时候,就会给你封装一个event局部变量,当你执行的时候,将这个click 事件传入,而event.target就是触发函数的元素。
通过$(event.target)就能把他包裹成jQuery nodeArray的形式,你再操作就可以了。
这里不能使用this,因为执行本函数的是window对象,所以你用this会指向window。
这跟使用jQuery的on方法来绑定元素的click事件,通过执行匿名函数进行处理有本质区别,一定要搞清。
你的这个this其实是想访问触发该函数的元素?
如果都是的话,其实不用他们说的什么传值,因为在浏览器封装函数的时候,就会给你封装一个event局部变量,当你执行的时候,将这个click 事件传入,而event.target就是触发函数的元素。
通过$(event.target)就能把他包裹成jQuery nodeArray的形式,你再操作就可以了。
这里不能使用this,因为执行本函数的是window对象,所以你用this会指向window。
这跟使用jQuery的on方法来绑定元素的click事件,通过执行匿名函数进行处理有本质区别,一定要搞清。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看着没问题,在if ($(this).index() != 0) 前加个alert(this);调试一下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询