Javascript 让jQuery从另一个页面加载信息
(挥动新手标志,对JS和jQuery来说也是新的) 我正在我的公司网站上工作,建立在Squarespace上 我们有一系列的产品,其中大部分都有一些配件。我试图避免一个带有选项卡式界面的超长div页面,因为很多div都让我产生了斜视 所以我想我可以使用SuperFish下拉插件来实现jQuery,到目前为止似乎还可以。但现在,我面临着在不替换页面的情况下调用存储在单独页面中的信息并将其放入主页的问题 现在。。。当我点击我设置的一个链接进行测试时,该链接会做出加载html页面的“预期”响应,但它会接管整个过程并删除我的导航 我完全愿意做我自己的工作和RTFM,但我不知道在哪里可以看到所说的手册。因此,我对指向文档的指针持开放态度 这是我到目前为止所拥有的Javascript 让jQuery从另一个页面加载信息,javascript,jquery,Javascript,Jquery,(挥动新手标志,对JS和jQuery来说也是新的) 我正在我的公司网站上工作,建立在Squarespace上 我们有一系列的产品,其中大部分都有一些配件。我试图避免一个带有选项卡式界面的超长div页面,因为很多div都让我产生了斜视 所以我想我可以使用SuperFish下拉插件来实现jQuery,到目前为止似乎还可以。但现在,我面临着在不替换页面的情况下调用存储在单独页面中的信息并将其放入主页的问题 现在。。。当我点击我设置的一个链接进行测试时,该链接会做出加载html页面的“预期”响应,但它会
// initialise plugin
$(document).ready(function() {
$(function(){
$('ul.sf-menu').superfish();
// this bit was taken from this tutorial: http://is.gd/PuaK-
$('#nav li a').click(function(){
// function to load in the actual page data
var toLoad = $(this).attr('href')+' #content';
function loadContent() {
$('#content').load(toLoad,'',showNewContent);
}
function showNewContent() {
$('#content').show();
}
return false;
});
谢谢你的关注
2009年10月6日-更新- 我在RTFM上花了更多的时间。我想我已经理解了“.load”函数是如何工作的了。我已经能够在测试页面上成功地使用它。所以现在我想我可以澄清我的目标了 精炼语句:
我想获取一个
目的地,并将
的内容和数据放入
中
这是我第一次使用JavaScript进行真正的开发;我知道有时候和新手打交道会让人沮丧,我提前感谢你的耐心
2009年6月15日
可以我暂时把这个想法搁置一边。这超出了我的深度,目前正在阻碍生产的大时间。如果有人有什么好主意,我还是开着的,再次感谢。我认为Benny Wong是对的 听起来你的结构是:
<div id='content'>
<div id='nav'>...</div>
other stuff
</div>
第一个是目的地。该div的所有内容都将被替换。这就是为什么本尼建议你把导航移到那个舱外
第二次使用#content(在url之后)告诉jquery要抓取另一个页面的哪一部分。我认为Benny Wong的观点是正确的 听起来你的结构是:
<div id='content'>
<div id='nav'>...</div>
other stuff
</div>
第一个是目的地。该div的所有内容都将被替换。这就是为什么本尼建议你把导航移到那个舱外
第二次使用#content(在url之后)告诉jquery要抓取另一个页面的哪个部分。您说您的页面结构如下:
<div class="nav">
<ul>
<li><a href="">nav link</a></li>
<li></li>
</ul>
</div
<div class="content">
<p></p>
</div>
嗯,#nav
指的是一个ID,但您的HTML只有类
这意味着您的单击功能永远不会执行,通过单击链接,您只需以正常方式导航到页面
您必须使用.nav
来设置目标类:
$('.nav li a').click(function(){
var toLoad = $(this).attr('href')+' #content';
function loadContent() {
$('#content').load(toLoad,'',showNewContent);
}
function showNewContent() {
$('#content').show();
}
return false;
});
但该代码也不起作用,因为您在该click事件中定义的loadContent()函数永远不会执行
我会这样写:
$('.nav li a').click(function(){
var toLoad = $(this).attr('href')+' #content';
$('#content').load(toLoad, '', function() {
$('#content').show();
});
return false;
});
您说您的页面结构如下所示:
<div class="nav">
<ul>
<li><a href="">nav link</a></li>
<li></li>
</ul>
</div
<div class="content">
<p></p>
</div>
嗯,#nav
指的是一个ID,但您的HTML只有类
这意味着您的单击功能永远不会执行,通过单击链接,您只需以正常方式导航到页面
您必须使用.nav
来设置目标类:
$('.nav li a').click(function(){
var toLoad = $(this).attr('href')+' #content';
function loadContent() {
$('#content').load(toLoad,'',showNewContent);
}
function showNewContent() {
$('#content').show();
}
return false;
});
但该代码也不起作用,因为您在该click事件中定义的loadContent()函数永远不会执行
我会这样写:
$('.nav li a').click(function(){
var toLoad = $(this).attr('href')+' #content';
$('#content').load(toLoad, '', function() {
$('#content').show();
});
return false;
});
这里有两件事
这里有两件事
你的页面结构是什么?你确定#nav不属于#内容吗?我检查了我的结构,它是:
- /ul>你的页面结构是什么?你确定#nav不属于#内容吗?我检查了我的结构,它是:
- 好的。因此,我不应该只是创建一个“平淡”的HTML页面,然后将我想要的东西放在我想要加载的页面上一个名为“content”的div中?你可能会遇到跨域问题。我相信浏览器对从其他域加载内容有限制。如果是这样,您需要在自己的服务器上安装一个代理。使用ajaxGood to know从不同的域加载内容是困难的/不可能的。在我的例子中,所有的内容都在同一个域中,所以跨域应该不是问题。谢谢你的意见,好的。因此,我不应该只是创建一个“平淡”的HTML页面,然后将我想要的东西放在我想要加载的页面上一个名为“content”的div中?你可能会遇到跨域问题。我相信浏览器对从其他域加载内容有限制。如果是这样,你需要在你自己的服务器上有一个代理