私はハイジャックのために次のjqueryを使用します。それはリンクの大部分がハイジャックすることを望んでいるが、クラス "nohijax"を持つことによって "オプトアウト"しないものを許可するので、とてもきれいです。 なぜ時折失敗するのですか?ひどいhijaxが失敗することがある
$("#content a:not(.nohijax), #footer a:not(.nohijax)").live("click", function() {
$.get($(this).attr("href"), function (response) {
$("#content").replaceWith($("#content", response));
});
return false;
});
それは私のマシン上のIE9でChromeで100%、100%に動作しますが、他のマシン上のIEで、まれに失敗しました。失敗は一貫していません。 "失敗した"マシンでさえ、ハイジャックはほとんどの場合動作しますが、突然クリックされたリンクは、古いコンテンツが新しいものに置き換えられないため「何もしない」と表示されます。 「新しいタブで開く」は常に動作し、新しいコンテンツが実際に送信されたことを示します。
ここで問題を調査しようとしました。 1つは.lot()で.not()を使用することに注意が必要ですが、私はそれが正しいと信じています。また、置き換えられた要素(ここでは、id = "content"のdiv)はbody要素の直接の子であってはいけません。それは(間に別のdivがあります)ではありません。
明白なハウラーがない場合、どうしているのかをどのようにトレースできますか? (私はjavascriptとブラウザの開発に新しいです)。ありがとうございました。
おかげで、それは右のトラックに私を入れていると私はやりました.live()の代わりに.on()を使用して少しテストします。これはjquery 1.7よりも優先されます。うまく動作しますが、私は元の文脈でそれを確認する時間がありませんでした。私は問題が解決したかどうかを報告します。 console.logのヒントもありがとう。申し訳ありませんが、私は新しいのであなたの返信をまだ投票できません。 – EyeNine