2012-05-13 9 views
10

せずに私は、このbindメソッドを書き、IEで動作するように私のpreventDefault()メソッドで問題を抱えています。コールバックラインが実行されません。助けてもらえますか?ありがとう!クロスブラウザでpreventDefault()はjQueryの

var preventDefault = function (event) { 
    if (window.event) { window.event.returnValue = false; } 
    else if (event.preventDefault) { event.preventDefault(); } 
    else { event.returnValue = false; } 
}; 

var bindEvent = function (ele, type, cb) { 
    if (window.addEventListener) { 
     ele.addEventListener(type, cb, false); 
    } else if (window.attachEvent) { 
     ele.attachEvent('on' + type, function() { 
      event.preventDefault = function() { 
       preventDefault(event); 
      }.call(this); 
      cb.call(ele, event); //this does not execute 
     }); 
    } 
}; 
+0

実行していない、その行の前に削除 'は.callを(この)'。以前は、構文エラーがスローされますので、それはあなたが、スクロールイベントのデフォルトの動作を妨げることはできません@JeffTian –

答えて

11
// cancel event 
function cancelEvent(event) { 
    if (event.preventDefault) { 
     event.preventDefault(); 
    } else { 
     event.returnValue = false; 
    } 
} 
+1

はIE9 –

+0

に動作していない...、実行されません。あなたはそれが動作しないと思う理由はここにあります! – undefined

+0

はい、あなたが正しいです@undefined。 –

関連する問題