我会尝试用简单的代码解释这个问题。
var fireClick = function() { alert('Wuala!!!') };
$('#clickme').click(fireclick);
$('#clickme').click(fireclick);
现在它显然会弹出两次警报,但我需要它只弹出一次。尝试了很多方法,但没有结果。
谢谢。
我会尝试用简单的代码解释这个问题。
var fireClick = function() { alert('Wuala!!!') };
$('#clickme').click(fireclick);
$('#clickme').click(fireclick);
现在它显然会弹出两次警报,但我需要它只弹出一次。尝试了很多方法,但没有结果。
谢谢。
click
简写。$('#clickme').off('click').on('click', fireclick);
$('#clickme').off().on('click', fireclick);
$('#clickme').unbind('click').click(fireclick);
$('#clickme').unbind().click(fireclick);
$('#clickme').off('click').on('click', fireclick);
或者简单地写成$('#clickme').off('click').click(fireclick);
。 - chucksmash使用命名空间确保您不会删除其他侦听器:
$('#clickme').off('click.XXX').on('click.XXX', fireclick);
XXX
,你就可以确信你没有搞砸自己不知道的其他行为。var fireClick = function() { alert('Wuala!!!') };
$('#clickme').click(fireclick);
$('#clickme').unbind('click', fireClick); // fireClick won't fire anymore...
$('#clickme').click(fireclick); // ...but now it will
我会尽力消除多余的调用,但如果无法做到,您可以确保每次都调用这两个:
$('#clickme').unbind('click', fireclick);
$('#clickme').click(fireclick);
$(document).off('click', '#clickme').on('click', '#clickme', fireclick);