我有以下脚本:
$('#target').bind('click',
function () {
$('#target').css({ 'display': 'none' });
$('#targetFake').css({ 'display': 'inline-block' });
},
function () {
alert('bind callback');
});
每次单击"#target"元素时,似乎都会触发"绑定回调"警报,而不是仅在绑定元素时触发一次。是否可以进行回调以验证绑定是否发生一次?
这就是它应该的工作方式:每个点击事件一个触发器。绑定在每个bind
调用发生一次;如果您不小心使用同一处理程序多次调用bind
,您将看到处理程序仅由一个click
多次触发。
但是:这两个函数在您的bind
调用中做什么?没有接受两个函数的重载。
您可能正在寻找的其他替代方案是:
- 当
- 场只调用一个函数一次——直接调用它,你不需要jQuery。
- 绑定仅在事件第一次发生时触发的处理程序 -- 为此使用
one
。 - 正常绑定处理程序并当场调用一次;您可以使用
$(...).bind('click', ...).trigger('click')
执行此操作。