0

在下面的代码中,我将在哪里使用preventDefault?我一直在对其进行测试以使其正常工作,但还没有找到取消默认submit操作的好方法。哪个函数需要捕获事件对象?

这是代码:

f_name = 'someFunc' ;
f_args(1,2,3) ;

if(element.addEventListener) {
element.addEventListener('submit',(function(name,args,element) {
    return function() {
        window[name].apply(element,args) ;
    }
})(f_name,f_args,element)
,false) ; }
4

3 回答 3

1

假设您只想在某些事件处理程序上使用 preventDefault,您将preventDefault()在用于处理特定事件的回调内部使用。在您的示例中,这将是由参数表示的全局函数,该name参数将是someFunc全局函数。

如果您想为所有事件处理程序执行此操作(这对我来说没有多大意义),那么您可以在您调用之前或之后在您的代码中执行此操作window[name]

于 2012-08-06T02:47:02.347 回答
1
f_name = 'someFunc';
f_args = [1, 2, 3];
if (element.addEventListener) {
    element.addEventListener('submit', (function (name, args, element) {
        return function (e) {
            // here 
            e.preventDefault();
            window[name].apply(element, args);
        };
    })(f_name, f_args, element), false);
}
于 2012-08-06T02:50:12.683 回答
0

将使用事件作为参数调用您的处理程序函数

return function(evt) {
    evt.preventDefault();
    window[name].apply(element,args) ;
}
于 2012-08-06T02:48:32.143 回答