キャッシングを無効にした「ロード」関数が必要でした。私が書いたことを実行します。jQuery.fn.extend関数が定義されなくなる
ファイル名:私はONCEそれを使用する場合RootFoolder/script.js
jQuery.fn.extend({
loadWithoutCache: function() {
var element = $(this);
if (arguments[0] != undefined) {
$.ajax({url: arguments[0], cache: false, dataType: "html", success: function(data, textStatus, XMLHttpRequest) {
element.html(data);
}});
}
else {
console.log("Invalid Arguments");
}
}
});
は、上記正常に動作します。ただし、2回目に使用すると、loadWithoutCache
は未定義です。
私は以下のようにそれを使用しています:
ファイル名:RootFolder/index.html
<html>
<head>
<title>Page Loader</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<p>
Some Text Description<br /><br />
<b>Choose a page:</b><br />
<select id="section">
<option value="1">Page 1</option>
<option value="2">Page 2</option>
</select>
<div id="content">
</div>
<script type="text/javascript">
$('#section').on('change', function() {
var pages = ["page1.html",
"page2.html"];
var index = $(this).val() - 1;
$("#content").loadWithoutCache(pages[index]);
});
</script>
</p>
</body>
</html>
ファイル名:RootFolder/page1.html
<html>
<head>
<title>Page</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<br />
<h3>Page 1</h3>
<b> - Description</b><br /><br />
<p>
Some Paragraph
</p>
</body>
</html>
ファイル名:RootFolder/page2.html
<html>
<head>
<title>Page</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<br />
<h3>Page 2</h3>
<b> - Description</b><br /><br />
<p>
Some Paragraph
</p>
</body>
</html>
index
ページで、ドロップダウンからPage 2
を選択すると、それが機能します。次に、同じドロップダウンからPage 1
を選択すると、私には未定義が与えられます。
私はloadWithoutCache
機能を作った後、右var index = $(this).val() - 1;
後$.fn.loadWithoutCache = loadFunc;
を行う場合、それはすべての時間を動作します:S
私は動的に別のページの内部でHTMLページをロードする方法をテストするためにこれを書いています。
なぜそれが定義されていませんか?私は何を逃したのですか?
エラーを示すスニペットやフィドルを提供できますか? – trincot
@Brandonは$( "#content")がまだ "div"を見つけたことを確認しましたか?それはまだ1つのマッチがまだあるだけですか?あなたはHTMLをドロップしているので、私はIDの競合が導入される可能性があると考えています。それはストレッチですが、成功した "loadWithoutCache"の実行後にレンダリングされたHTMLを投稿することができれば、それをエラーとして排除します。 – Adrian
@Aliester; @trincot;こんにちは、私はテストしているページを含めるために質問を更新しました。私はJSFiddleに複数のページを追加する方法を理解することができないので、3つのHTMLページと1つのJavascriptファイルを質問に追加しました。 – Brandon