我有一个AJAX电话。在此调用期间,必须禁用该按钮。
然后,当呼叫结束时,必须重新激活按钮的click
事件。
我使用此代码执行此操作。不幸的是,点击事件仅在第一次起作用
$('#reload_btn').on('click', function(){
$(this).off('click');
$.ajax({
type: 'GET',
url: 'ajax/stat.php',
data: {use: 'get'},
beforeSend: function(){
$('#reload_btn').attr('src', 'files/reload_btn.gif');
},
success: function(result){
$('#ajax').html(result);
},
error: function(data){
$('#ajax').html('Error!');
},
complete: function(){
$('#reload_btn').on('click');
$('#reload_btn').attr('src', 'files/reload_btn.png');
}
});
});
有没有办法在不调用外部函数的情况下重新挂接click
事件?
答案 0 :(得分:2)
如果更改2行,则可以重新附加处理程序:存储对函数的引用:
$('#reload_btn').on('click', f = function(){
并将其传递给.click
:
complete: function(){
$('#reload_btn').on('click', f);