あなたの例に基づいて、これを行う理由は「ありません」。
ただし、その使用法に眉をひそめる人もいるかもしれませんが、それが役立つ状況があります。
すなわち
$('a.go').click(function(e)
{
e.preventDefault();
if(!$(this).hasClass('busy'))
{
$(this).addClass('busy');
$.ajax(
{
success : function(resp)
{
$(this).removeClass('busy');
},
error : function()
{
$(this).removeClass('busy');
}
});
}
});
上記では$(this)
、スコープが失われているため、成功とエラーのコールバックはクリックしたリンクに反映されません。
これを回避するには、次のようにしますvar self = $(this)
。
$('a.go').click(function(e)
{
e.preventDefault();
if(!$(this).hasClass('busy'))
{
$(this).addClass('busy');
var btn = $(this);
$.ajax(
{
success : function(resp)
{
btn.removeClass('busy');
},
error : function()
{
btn.removeClass('busy');
}
});
}
});