gpt4 book ai didi

jquery - 动态改变div之间的页面内容?

转载 作者:行者123 更新时间:2023-12-01 08:03:21 24 4
gpt4 key购买 nike

我正在寻找一种方法来更改单个页面的内容,而不是使用 jQuery 或类似的东西将用户重定向到新页面。我对脚本编写很陌生,因此我们将不胜感激。

我已经在 jsFiddle 中创建了一个快速模型,它演示了网站的基本布局以及当用户请求不同页面时我想要更改的内容:

http://jsfiddle.net/Syrne/8pMnR/

代码:

HTML:

<div class="container">
<div class="navbar">
<div id="navWrap" class="container">
<div class="nav-collapse collapse">
<ul class="nav navbar-nav">
<li><a href="#">Home</a>

</li>
<li><a href="#">Link 1</a>

</li>
<li><a href="#">Link 2</a>

</li>
<li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown">Drop <b class="caret"></b></a>

<ul class="dropdown-menu">
<li>
<!-- DoW -->
<li class="dropdown-submenu"> <a tabindex="-1" href="#">Menu</a>

<ul class="dropdown-menu">
<li><a tabindex="-1" href="#">Option 1</a>

</li>
<li><a tabindex="-1" href="#">Option 2</a>

</li>
<li><a tabindex="-1" href="#">Option 3</a>

</li>
</ul>
</li>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<hr></hr>
<div id="main_page">
<p><b>MAIN CONTENT</b></p>
<p>This content should change dynamically when a user follows a page link.</p>
<hr></hr>
</div>
<div class="footer">
<p>&copy; 2013</p>
</div>
</div>

CSS:

@import url('http://twitter.github.com/bootstrap/assets/css/bootstrap.css');
.dropdown-submenu {
position:relative;
}
.dropdown-submenu>.dropdown-menu {
top:0;
left:100%;
margin-top:-6px;
margin-left:-1px;
-webkit-border-radius:0 6px 6px 6px;
-moz-border-radius:0 6px 6px 6px;
border-radius:0 6px 6px 6px;
}
.dropdown-submenu:hover>.dropdown-menu {
display:block;
}
.dropdown-submenu>a:after {
display:block;
content:" ";
float:right;
width:0;
height:0;
border-color:transparent;
border-style:solid;
border-width:5px 0 5px 5px;
border-left-color:#cccccc;
margin-top:5px;
margin-right:-10px;
}
.dropdown-submenu:hover>a:after {
border-left-color:#ffffff;
}
.dropdown-submenu.pull-left {
float:none;
}
.dropdown-submenu.pull-left>.dropdown-menu {
left:-100%;
margin-left:10px;
-webkit-border-radius:6px 0 6px 6px;
-moz-border-radius:6px 0 6px 6px;
border-radius:6px 0 6px 6px;
}
#main_page {
text-align: center;
}

.footer {
text-align: center;
}

.navbar .nav,
.navbar .nav > li {
float:none;
display:inline-block;

vertical-align: top;
}

#navWrap {
text-align: center;
}
}

正如您所看到的,网站的中间区域是应该发生操作的地方。其余部分(导航栏和页脚)应保持固定。

作为引用,我拉出了 this guide利用 jQuery、“Modernizr”和 HTML5 的历史 API 来为每次内容更改保留唯一的 URL;这正是我想做的,但我似乎无法思考如何使其适合我当前的设计。非常感谢任何帮助,即使是一个轻微的提示来帮助我。我对网页设计/开发非常陌生,还有很多东西需要学习。

最佳答案

您所需要的只是AJAX。基本流程可能是:

  1. 在导航链接上附加一个click事件。
  2. 当用户点击链接时,阻止默认操作并获取 href 中的内容。
  3. 使用 AJAX 从该链接获取内容。
  4. 使用新内容更新您的主要内容 div。

EG:

$('nav li').on('click', 'a', function(e){ //step 1
e.preventDefault(); //prevent default action, step2
var url = $(this).attr('href'); //get the url, step 2

$.ajax({ //step 3
url: url,
//your other options
success: function(response){ //on success
$('YOUR MAIN DIV').html(response); //update your div, step 4
}
});
});

根据评论进行编辑

您的实现存在问题。您所定位的 $('#link1') 不存在。像这样更改导航链接:

<ul class="nav navbar-nav">
<li><a href="#">Home</a></li>
<!-- The script below will get the data from href attribute of anchor tag -->
<!-- So your href attribute should target file you want to load your content from -->
<li><a href="external.html">Link 1</a></li>
<li><a href="external2.html">Link 2</a>
...
</ul>

然后使用以下代码。

$(document).ready(function(){
$("ul.nav li a").click(function(e){
e.preventDefault();
var url = $(this).attr('href'); //get the link you want to load data from
$.ajax({
type: 'GET',
url: url,
success: function(data) {
$("#main_page").html(data);
}
});
});
});

或者,如果您希望当前的实现正常工作,请向您的 anchor 标记提供 id,如下所示

<a href="#" id="link1">

另外请务必将脚本包装在 $(document).ready(function(){})

关于jquery - 动态改变div之间的页面内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18116526/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com