写了一个鼠标点击按钮Ajax效果,代码如下:
<script type="text/javascript">
//报名参加活动
$('.right a').bind('click',function(){
var id = $(this).next('.d_n').text();
$.ajax({
url:"<?php echo Yii::app()->createUrl('/ajax/AjaxJoinActivity/') ?>",
type:'POST',
data:'id='+id,
success:function(msg){
$(this).html(msg);
}
});
})
</script>
但是这样写会有个问题,就是$(this)
没有效果,Google找了一下解决方案,如下: 1、添加一行代码:context: this,
修改之后的代码如下:
<script type="text/javascript">
//报名参加活动
$('.right a').bind('click',function(){
var id = $(this).next('.d_n').text();
$.ajax({
context: this,
url:"<?php echo Yii::app()->createUrl('/ajax/AjaxJoinActivity/') ?>",
type:'POST',
data:'id='+id,
success:function(msg){
$(this).html(msg);
}
});
})
</script>
2、转换一下this
变量,重新定义。改过之后的代码如下:
<script type="text/javascript">
//报名参加活动
$('.right a').bind('click',function(){
var id = $(this).next('.d_n').text();
var that = this;
$.ajax({
url:"<?php echo Yii::app()->createUrl('/ajax/AjaxJoinActivity/') ?>",
type:'POST',
data:'id='+id,
success:function(msg){
$(that).html(msg);
}
});
})
</script>
以上都能解决问题,看你喜欢那种了。 参考资料如下: http://stackoverflow.com/questions/6394812/this-inside-of-ajax-success-not-working http://stackoverflow.com/questions/1570146/ajax-jquery-success-scope
- 原文作者: forecho
- 原文链接: https://blog.forecho.com/jquery-ajax-this-de-wen-ti.html
- 版权声明:本作品采用 署名-非商业性使用 4.0 国际 (CC BY-NC 4.0)进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。