如果基于该元素的ajax调用成功,我正在尝试修改元素的类
<script type='text/javascript'>
$("#a.toggle").click(function(e){
$.ajax({
url: '/changeItem.php',
dataType: 'json',
type: 'POST',
success: function(data,text){
if(data.error=='')
{
if($(this).hasClass('class1'))
{
$(this).removeClass('class1');
$(this).addClass('class2');
}
else if($(this).hasClass('class2'))
{
$(this).removeClass('class2');
$(this).addClass('class1');
}
}
else(alert(data.error));
}
});
return false;
});
</script>
<a class="toggle class1" title='toggle-this'>Item</a>
Run Code Online (Sandbox Code Playgroud)
我对这个问题的理解是,在success函数中,它引用了ajax对象参数,而不是像在click函数的其他位置那样调用dom元素.那么,我如何引用调用dom元素并检查/添加/删除类?
Dan*_*ein 17
您可以将其存储在变量中.例:
$("#a.toggle").click(function(e)
{
var target = $(this);
$.ajax({
url: '/changeItem.php',
dataType: 'json',
type: 'POST',
success: function(data,text)
{
if(data.error=='')
{
if(target.hasClass('class1'))
{
target
.removeClass('class1')
.addClass('class2');
}
else if(target.hasClass('class2'))
{
target
.removeClass('class2')
.addClass('class1');
}
}
else(alert(data.error));
}
});
return false;
});
Run Code Online (Sandbox Code Playgroud)
jQuery将事件的目标以及有关它的一些其他信息传递给处理函数.有关此内容的更多信息,请参见http://docs.jquery.com/Events_%28Guide%29.
在你的代码中,它被引用为$(e.target).