#html #jquery
Вопрос:
Я пытаюсь выполнить упражнение. В этом упражнении вы создаете четыре файла: index.html, home.html, about.html, и contact.html. Используя jQuery .функция загрузки, вы должны быть в состоянии использовать index.html в качестве шаблона и загрузите в него другие файлы (все еще видя index.html навигационная панель). Вместо этого происходит то, что другие html-файлы, похоже, полностью заменяют index.html в браузере. Я не могу понять, почему. Я следую инструкциям по упражнению.
Вот код:
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Multi-Page Site amp; Template</title>
</head>
<body>
<nav>
<a href="home.html">Home</a>
<a href="about.html">About</a>
<a href="contact.html">Contact</a>
</nav>
<h1>Index Page</h1>
Here is where the Index Page is.
<div id="content">
</div>
<script src="https://code.jquery.com/jquery-3.6.0.slim.min.js" integrity="sha256-
u7e5khyithlIdTpu22PHhENmPcRdFiHRjhAuHcs05RI=" crossorigin="anonymous"></script>
<script>
$(function() {
$("#content").load("home.html");
$("nav a").click(function() {
var href = $(this).attr("href");
$("#content").load(href);
return false;
});
});
</script>
</body>
</html>
home.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Home Page</title>
</head>
<body>
<h1>Home Page</h1>
<p>
This is the home page. All content has been edited for brevity.
</p>
</body>
</html>
about.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>About Page</title>
</head>
<body>
<h1>About Page</h1>
<h2>Things to know about the About Page</h2>
<ol>
<li>It's named About Page</li>
<li>It has no styling</li>
<li>It's very short</li>
</ol>
</body>
</html>
contact.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Contact Page</title>
</head>
<body>
<h1>Contact Page</h1>
<table>
<tr>
<th>First Name</th>
<th>Last Name</th>
<th>Age</th>
</tr>
<tr>
<td>Billy</td>
<td>Blazer</td>
<td>41</td>
</tr>
</table>
</body>
</html>
В упражнении говорилось, что возвращаемое значение false должно было предотвратить замену других страниц index.html. Почему это не работает или что еще не так с кодом?
Спасибо!
Ответ №1:
Пожалуйста, измените свой код на код ниже: Таким образом, тип=»тип/html» будет изменен на тип=»текст/html».
$(function() {
$("nav a").click(function() {
var href = $(this).attr("href");
$("#content").html('<object type="text/html" data="' href '">
</object>');
return false;
});
});
Комментарии:
1. Вы должны объяснить, почему оригинал не сработал, что вы сделали по-другому и почему ваш работает. «Скопируйте/вставьте это» не очень полезно.
2. В моем ответе тип=»тип/html» изменен на тип=»текст/html».
3. Вам следует отредактировать свой вопрос, чтобы добавить эту информацию. Комментарии могут быть легко удалены.
4. Спасибо за ваше предложение. Я добавляю это.
5. Вы говорите, что обновили
type="type/html"
, но я не вижу этого нигде в исходном коде, поэтому он кажется добавленным, а не обновленным. Я тоже ничего не вижу<object></object>
в исходном коде, так что ваше объяснение выглядит немного странным. Похоже, вы добавили кое-что и ничего из этого не упомянули.