1

これが問題のあるコードです

$('.consejosTab').on("click", function(e){
    //window.location = 'http://encuentratrabajoonline.es/consejos/';
    console.log('Clicked' , e , this);
});

IE8でページhttp://encuentratrabajoonline.es/を表示すると、ページはすぐにサブドメインにリダイレクトされます。発生しているように見えるのは、クリックイベントを要素にバインドする代わりに、consejosTabでクリック関数を呼び出すことです。私はいくつかの予備テストを行い、再配置をコメントアウトし、ステートメント内にconsole.logを配置しました。また、要素をクリックして実行している他のクリック機能がないことも確認しました。

ページ上の他のすべてのひどい標準は別として(これは私がこのサイトで行う予定のクリーンアップの始まりにすぎません)、なぜこれがIE8でのみ発生するのかを知る必要がありますか?

4

2 に答える 2

0

使用しているjQueryのバージョン(できれば最新のもの)に応じて、代わりに次の構成を使用します。

$('.nav').on("click", function(e){
  // your code here
});
于 2013-02-15T02:42:22.013 に答える
0

私もしばらくこれに苦労しましたが、意図せずに myfunction への呼び出しを呼び出していたことがわかりましたが、標準に従って期待どおりであり、この SOF の質問でよりよく説明されています。関数をインラインで定義することにより、自動的に実行されます。

次の 3 つの構文行では、同じ問題が発生します (即時実行)。

$('.consejosTab').on("click", function(e){ alert("I will execute immediately");});
$('.consejosTab').on("click",myFunc()); 
$('.consejosTab').click(myFunc());

解決策は、名前付き関数を呼び出す次のオプションのいずれかを使用することです - 括弧の削除に注意してください。「myFunc()」を渡すことは値を返すことを意味し、「myFunc」を渡すことは実行する関数への参照です。

$('.consejosTab').on("click", mmyFunc); */ JS */
$('.consejosTab').click(myFunc); */ JQuery Shorthand */
于 2014-06-06T16:11:00.033 に答える