单击函数获取JSON数组中的动态内容

单击函数获取JSON数组中的动态内容,json,function,dom,jquery,Json,Function,Dom,Jquery,我有一个PHP文件,它提供从MySQL数据库填充的JSON数组,并加载到DOM中。该数据通过jQuery getJSON()方法加载到HTML文档的#navContent分区中。这是按计划进行的 在HTML文档的最底部,我有一个click函数,它的目标是动态加载到DOM中的#navItem div,但它不会启动。我假设 $(文档).ready(函数(){ loadNav(dns+导航内容、容器、附录)// 而不是: $('#navItem').click(function(){}); 尝试使用

我有一个PHP文件,它提供从MySQL数据库填充的JSON数组,并加载到DOM中。该数据通过jQuery getJSON()方法加载到HTML文档的#navContent分区中。这是按计划进行的

在HTML文档的最底部,我有一个click函数,它的目标是动态加载到DOM中的#navItem div,但它不会启动。我假设

$(文档).ready(函数(){
loadNav(dns+导航内容、容器、附录)//
而不是:

$('#navItem').click(function(){});
尝试使用:

$('#navItem').live('click', function(){}); // jQuery older than 1.7

而不是:

$('#navItem').click(function(){});
尝试使用:

$('#navItem').live('click', function(){}); // jQuery older than 1.7


对于动态内容,应该在
上使用jquery

所以你的代码应该是这样的

$("#navScrollContainer").on("click","#navItem").click(function(e){
            e.preventDefault();
            $('#bodyContent').load('www.google.com');
});
但是我想,您不应该为单击事件使用id选择器,因为id对于元素来说是唯一的。因此,当您加载新内容时,我相信id会不同。您可能可以使用所有要单击的元素都通用的类名

on方法仅可从jQuery 1.7版本获得。如果您使用的是以前的版本,则应使用Niyaz提到的
live


对于动态内容,您应该在
上使用jquery

所以你的代码应该是这样的

$("#navScrollContainer").on("click","#navItem").click(function(e){
            e.preventDefault();
            $('#bodyContent').load('www.google.com');
});
但是我想,您不应该为单击事件使用id选择器,因为id对于元素来说是唯一的。因此,当您加载新内容时,我相信id会不同。您可能可以使用所有要单击的元素都通用的类名

on方法仅可从jQuery 1.7版本获得。如果您使用的是以前的版本,则应使用Niyaz提到的
live


它将出现,以便您的所有导航元素都使用相同的ID创建。这

$('#navItem').click(function(e){ //<-- THIS IS BROKE!! HELP!!

它将显示为所有导航元素都是使用相同的ID创建的

$('#navItem').click(function(e){ //<-- THIS IS BROKE!! HELP!!

抱歉,这是一个与此动态内容相关的问题链。Thnx代表您的所有帮助。每个人。您使用的是哪个版本的jQuery?抱歉,这是一个与此动态内容相关的问题链。Thnx代表您的所有帮助。每个人。您使用的是哪个版本的jQuery?他没有错误地使用它,但他将它错误地用作了一个示例替换
live()
click()的替换内容是什么
@Dylan Cross Thnx!这不起作用,但让我走上了正确的轨道。请看我上面的编辑。@GregPettit是的,这就是我的意思,我只是急于发表评论,但没有提及。@DylanCross是的,我是指Matthew;我很惊讶他没有领会你的意思。-)他没有错误地使用它,但他错误地将它用作
live()
的替代品
@Dylan Cross Thnx!这不管用,但让我走上了正确的轨道。请看上面我的编辑。@GregPettit是的,这就是我的意思,我只是急于发表评论,但没有提到。@DylanCross是的,我是指Matthew;我很惊讶他没有领会你的意思。-)Thnx!这不管用,但让我走上了正确的轨道。请看我的编辑Thnx!这不起作用,但让我走上了正确的轨道。请看我上面的编辑。
var newItem = $('#' + container).clone();
newItem.attr("id","something_unique_in_here");