和同学一起做公益项目,中间用到了jquery。
其中一段的jquery代码是这样的:
$(document).ready(function(){
$(".btnchange").on("click",function(){
var value=$(this).attr("name");
console.log(value)
$.get("translationOnline.php",
{
name:value
},
function(data){
$(this)<span style="font-family: Arial, Helvetica, sans-serif;">.parent().html(data);</span>
});
})
})
发现这么写的时候,回调函数根本没有执行反应,连用hide()都没有反应,查了一下问题,发现好像是回调函数里面的$(this)不会指向元素自身。所以做法是在回调函数之前把$(this)对象保存下来:
$(document).ready(function(){
$(".btnchange").on("click",function(){
var value=$(this).attr("name");
var _this=$(this);
console.log(value)
$.get("translationOnline.php",
{
name:value
},
function(data){
_this.parent().html(data);
});
})
})
这样就可以作用了。
使用jQuery解决事件回调问题

本文分享了一段在使用jQuery进行交互式Web开发时遇到的问题,即回调函数中$(this)无法正确指向触发事件的元素。通过将$(this)保存为变量的方法解决了此问题,并解释了背后的原因。
476

被折叠的 条评论
为什么被折叠?



