从嵌套div导航

时间:2011-12-02 21:02:56

标签: jquery html

在我的网站中,我创建了一个布局,其中<div>是一个菜单,其中列出了一些<div>的链接,该链接充当主页,其中显示了每个打开的链接。

<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function() {

$('.linkpage').bind('click', function(e) {           
var url = $(this).attr('href');
    $('#main').load(url);
    e.preventDefault();
});

});
</script>
</head>

<body>

<div id="menu">
<a href="Page1.php" class="linkpage">Page1</a>
<a href="Page2.php" class="linkpage">Page2</a>
</div>

<div id="main">
</div>

</body>

这是完整页面并在单击时打开目标div(主要)中的链接。单击位于主<div>中的链接时会发生此问题:

<a href='Page2.php' class='linkpage'>ClickMe.</a>

这不会在同一个div中触发,但它会像target='_top'一样打开整页,而是打开同一个页面,维护页面左侧的菜单。我要在脚本中添加什么来在正确的目标中打开链接?

提前致谢。

2 个答案:

答案 0 :(得分:0)

在jQuery中将.bind(更改为.live(

这样它就会对所有链接起作用,甚至是在脚本运行后添加到DOM的链接。它现在的方式,它只会在脚本运行时对DOM中的链接起作用。

答案 1 :(得分:0)

我和我的某个网站做过类似的事情。您要求的是将所有链接重新路由到该div,您不想只是更改目标,因为如果您刚刚更改了目标,它仍然会覆盖您的页面。

所以你基本上想要模仿帧的功能?如果这是正确的,那么你需要做一些事情来捕捉每一次点击并将其路由回来(未经测试):

$('#main').delegate('a', 'click', function(e) {   // use .on() if you have 1.7
    $('#main').load(this.href);
    e.preventDefault();
});