试图让jquery加载工作

trying to get jquery load to work

本文关键字:加载 工作 jquery      更新时间:2023-09-26

当我在菜单中导航时,我只希望改变内容区div,而不重新加载整个页面。我想使用jquery加载函数从另一个页面读取一个div(从members.htmldiv colTwo),并将其插入到页面(到div contentarea)。我一直在试,但就是不能用。

任何帮助编辑这个脚本将是有帮助的!

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>My Title</title>
<link href="default.css" rel="stylesheet" type="text/css" />
</head>
<script type="text/javascript" src ='http://code.jquery.com/jquery-1.9.1.min.js'</script>
<script type="text/javascript">
$(document).ready(function() {
function memberspage(){
    $('#contentarea').load('members.html #colTwo');
}
});
</script>
<body>
<div id="header">
    <h1>My Title</h1>
</div>
<div id="content">
    <div id="colOne">
        <div id="menu1">
            <ul>
                <li><a href="#" onclick='memberspage()'>Members</a></li>
            </ul>
        </div>
        <div class="margin-news">
            <h2>Recent Updates</h2>
            <p><strong>None At This Time</strong> </p>
        </div>
    </div>
    <div id="contentarea"><h2>Starting Text</h2></div>
    <div style="clear: both;">&nbsp;</div>
</div>
</body>
</html>

问题是你已经在文档准备处理程序中声明了memberspage()函数,这意味着当你试图从锚元素上的内联onclick处理程序调用它时,它不在范围内-内联属性这样只能访问全局函数。

您可以通过将函数声明移出文档(使其成为全局)来解决这个问题,但是更好的选择是使用jQuery绑定click处理程序:
$(document).ready(function() {
    $("#menu1 a").click(function(e){
        $('#contentarea').load('members.html #colTwo');
        e.preventDefault();
    });
});

我添加了e.preventDefault()来阻止锚点点击的默认行为,否则可能会滚动回页面顶部。(在内联处理程序中,返回false也会得到同样的效果。)

还请注意,包含jquery.js的<script>元素在关闭</script>之前缺少关闭>

您需要在全局作用域中定义该函数,以便在基于属性的事件中使用它。

<script type="text/javascript">
function memberspage(){
    $('#contentarea').load('members.html #colTwo');
}
</script>

memberpage()已经定义,但是您没有从任何地方调用它