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

一部のイベントハンドラーでのみDefaultを防止したい場合は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 に答える