Javascript jquery页面加载函数

Javascript jquery页面加载函数,javascript,jquery,Javascript,Jquery,我试图让页面加载正常工作,但不是为每个按钮生成js,而是希望它通过ul并从每个li获取值 $(函数(){ $(“#nav”).children().each($(this).on(“单击”,函数()){ $(“#main”).load(“/pages/”+$(this.data(“page”)+”.php”); })); }); 主页 第2页 第3页 $(“#nav”).children()。每个($(此)。在(“单击”)上,函数(){是错误的-我可以看到您的意图,但是 a) “.eac

我试图让页面加载正常工作,但不是为每个按钮生成js,而是希望它通过
ul
并从每个
li
获取值

$(函数(){
$(“#nav”).children().each($(this).on(“单击”,函数()){
$(“#main”).load(“/pages/”+$(this.data(“page”)+”.php”);
}));
});

    主页
  • 第2页
  • 第3页
$(“#nav”).children()。每个($(此)。在(“单击”)上,函数(){
是错误的-我可以看到您的意图,但是

a) “.each”需要一个回调函数作为输入,而不是jQuery集合(因此出现错误消息),以及

b) 无论如何,没有必要为此使用循环

整行可以简化为
$(“#nav li”)。单击(函数(){
。jQuery将确保每个列表项都附带一个单独的单击处理程序

演示:

$(函数(){
$(“#nav li”)。单击(函数(){
log($(this.data(“page”));
$(“#main”).load(“/pages/”+$(this.data(“page”)+”.php”);
});
});

    主页
  • 第2页
  • 第3页

->列表项不能有值属性。数据属性可能会更有用sense@j08691它们可以,但只能在
中,并且必须是一个数字:“如果元素是
ol
元素的子元素:
-列表项的序数值”@j08691我只是将其更改为使用数据属性,并稍微更改了js,但它仍然不起作用,而且它是js,我需要更多帮助才能使用HTMLY。您必须将函数传递给
。each()
,而不是jQuery对象/集合更新
nav
链接,以仅选择包含
数据页
属性的LI(
#nav li[data page]
)以防止li在不存在的情况下获得点击事件处理并导致其他错误。您将收到对
/pages/.php
的页面请求,该请求将返回404s。非常感谢,我可能已经提到,我对js/jquery几乎一无所知(因为以前的老师很差劲)我们才真正开始学习使用它now@Itanex当然可以,但没有迹象表明不会指定页面-这是一个链接菜单,为什么不提供页面属性?在这种情况下,菜单项的用途是什么?如果页面属性为te缺失。属性选择器更昂贵,因此我们应该避免使用它们,除非它是100%必要的。@ADyson,没错,我们不知道,除了我们在OP中看到的以外,我们也不知道任何一种方式,也不知道原作者的意图。这将有助于OP了解菜单是否包含其他没有属性的LI,例如标题en尝试一下,就像在引导导航演示中常见的那样,当允许贪婪选择器操作时,会出现额外的错误。至于属性选择器的速度问题,由于该选择器只运行一次,因此它的影响为
nil
,可以使用延迟模式
$('#nav')。在('click','[data page]',function(){…})上
@Itanex但是再次…**为什么**菜单包含一个没有页面的条目?这有什么用?演示有什么关系?它们从来都不代表现实。我真的认为你在这里吹毛求疵