私の main.js には、2 つのリンク関連のルールがあります。http://、mailto:、または # で始まらないすべてのリンクを処理する必要があります。load() を使用して $('#contentMain') のコンテンツを置き換えます。もう 1 つは http:// で始まるリンクを処理し、それらを新しいタブで開きます。
$("a:not([href^='http://'],[href^='#'],[href^='mailto:'])").click( function(e) {
console.log('Caught click, loading via AJAX');
var url = $(this).attr("href");
var title = ($(this).attr("title")) ? ': ' + $(this).attr("title") : '';
e.preventDefault();
if(url!=window.location){
window.history.pushState({path:url},title,url);
$('#contentMain').load(url);
document.title = "It's New Orleans" + title;
}
});
$("a[href^='http://']").attr("target","_blank");
問題は、/contact のようなリンクが最初のルールIFをトリガーしないように思われます。/content が読み込まれているときに #contentMain 内で /contact をクリックすると、ルールが適用され、console.log() などが表示されます。
では、load() によって置き換えられたコンテンツが main.js の規則に従わないのはなぜでしょうか? これらのルールは現在 a の中にありますが、$(document).ready(function(){
それを削除して、それが役立つかどうかを確認しました.