Events mootools禁用或拦截添加的事件
假设我这样做:Events mootools禁用或拦截添加的事件,events,mootools,intercept,Events,Mootools,Intercept,假设我这样做: $('field').addEvents ({ 'focus' : function() { // do some stuff } 'blur' : function() { // do other stuff } }); 这是我所有文本输入字段的默认行为。我现在想做的是这样的事情 戳我一下 然后: 因此: 1) 如何停止DefaultBlurFunctionInirentlyFocusedField() 2) 如何判断我是否真的完成了严重的LycoolStuff?严格
$('field').addEvents ({
'focus' : function() { // do some stuff }
'blur' : function() { // do other stuff }
});
这是我所有文本输入字段的默认行为。我现在想做的是这样的事情
戳我一下
然后:
因此:
1) 如何停止DefaultBlurFunctionInirentlyFocusedField()
2) 如何判断我是否真的完成了严重的LycoolStuff?严格来说,你不能做你想做的事情,因为
模糊事件在你的点击处理程序之前触发
Dimitar建议禁用mouseover上的事件,这对鼠标用户来说很好,但会阻止用户用键盘触发按钮
一个选项(但有点小技巧)是在blur
事件处理程序中引入一个微小的延迟,并使用一个可变标志来控制事件触发(您可能需要调整延迟,使其不易察觉,但仍然足够长:
var disableBlurMethod = false;
$('field').addEvents ({
'focus' : function() { // do some stuff }
'blur' : function() {
(function() {
if (!disableBlurMethod) {
// do some stuff
}
}).delay(50);
}
});
$('shinyButton').addEvent('click', function() {
disableBlurMethod = true;
// do seriously cool stuff
if (finishedDoingSeriouslyCoolStuff) {
disableBlurMethod = false;
$('field').focus(); // return focus to input field
}
}
在聚焦于字段的同时单击按钮是一件棘手的事情,它会触发模糊和单击。您可以在模糊回调上使用一个小的延迟,您可以在单击时清除它-这并不理想,因为由于鼠标停留的时间比预期的长,因此单击可能是一个长的单击-或者您可以将所有这些委派给父窗体wh在你可以检查eventTargets等之前…这不是一项简单的任务。你也可以在按钮上添加mouseover事件,在模糊检查和优雅退出的字段上设置一个标志…明白了。因此出于我的意图和目的:不:D再次感谢@Dimitar。作为旁注,我看到你也是自学成才的。给我希望!哈哈,不,可以工作。检查-就像我说的,如果你把鼠标移到提交上,就会在必填字段上禁用模糊事件,这样点击它就不会触发字段验证。任何其他模糊都会。
var disableBlurMethod = false;
$('field').addEvents ({
'focus' : function() { // do some stuff }
'blur' : function() {
(function() {
if (!disableBlurMethod) {
// do some stuff
}
}).delay(50);
}
});
$('shinyButton').addEvent('click', function() {
disableBlurMethod = true;
// do seriously cool stuff
if (finishedDoingSeriouslyCoolStuff) {
disableBlurMethod = false;
$('field').focus(); // return focus to input field
}
}