我有以下解决方案,以防止多次点击(尊重只有第一个,忽略其余):
preventMultiClick = function() {
$(this).unbind("click");
$(this).bind("click", function() {
return false;
});
};
preventMultiSubmit = function() {
$(this).unbind("submit");
$(this).bind("submit", function() {
return false;
});
};
$("a").one("click", preventMultiClick);
$("#user").one("submit", preventMultiSubmit);
这个解决方案对我来说并不优雅,我认为应该是。所以我试着升级到下面的一个:
preventMultiClick = function(event) {
$(this).unbind(event);
$(this).bind(event, function() {
return false;
});
};
$("a").one("click", preventMultiClick("click"));
$("#user").one("submit", preventMultiClick("submit"));
这个解决方案不起作用,有人能解释一下为什么或者告诉我,函数的参数应该如何写吗?
2条答案
按热度按时间rkue9o1l1#
问题是在绑定处理程序时调用函数,
event
对象被传递给处理程序,而且event
是一个对象,您应该使用它的type
属性。ufj5ltwl2#
问题是你传递的是一个未定义的变量而不是函数引用,我会这样做。
每个事件都包含其类型。