【发布时间】:2012-08-04 23:31:01
【问题描述】:
我会尽可能清楚地解释我正在尝试做的事情,并希望人们能够理解这个问题。
$(document).ready(function() {
$('body').on('click', '.mainNav', function() {
var href = $(this).attr('href');
$('body').load(href);
});
});
这是给我带来麻烦的代码。基本上,它应该做的是从 div 中获取 'href' 属性,然后加载该属性以替换 body 标记的当前内容。
这是第一次工作,但是当通过 .load() 生成新内容时,div 停止响应。我对 JS 很陌生,所以如果答案很明显,我提前道歉。我一直在尝试自己寻找解决方案,但我发现的一切都告诉我 .on() 应该适用于动态生成的内容。
编辑:无法在小提琴中模拟问题,所以我发布了一个包含整个索引页面的 pastebin,希望它能澄清问题。
编辑: 它使用 adeneo 的解决方案。非常感谢每个人的意见,并为没有从一开始就发布整个内容而道歉。我猜它会为每个人节省一些时间。
【问题讨论】:
-
.load基于 Ajax,这意味着href只能是基于与脚本相同域的 URL。这称为同源策略。href可能是http://google.com。这会破坏脚本。 -
如果您在页面it should just work上没有收到错误。
-
@PeeHaa 您使用的是
html()方法,而不是load()方法。这是不同的,所以不是证明案例。 -
@CSED: 你有
<script>标签来在<body>中加载外部JS吗?最具体地说,您是否以这种方式加载 jQuery 本身?如果是这样,将 jQuery 移到<head>中,问题应该会得到解决。 -
链接无效,它是一个带有 href 属性的水力压裂 div!
标签: javascript jquery dom event-handling dynamically-generated