我有一个页面,它使用jquery和一个简单的导航菜单加载其内部内容。因此,页面只有一个定期访问的URL。我的问题是我似乎无法从加载的div中获取内容来修改'that'特定的div。例如,我有一些与我的jquery加载器函数类似的东西:
$(document).ready(function(){
// load index page when the page loads
$("#response").load("start.html");
$("#home").click(function(){
// load home page on click
$('#response').load('start.html', function() {
resizefunc();
});
});
...
如果我在其中一个加载页面中创建了一个元素,该元素链接到带有该加载器函数的id的#,单击它只需将焦点移回页面顶部,而不是重新加载我的“响应”div。
答案 0 :(得分:1)
由于这些导航元素(即#home
)最初不存在,因此在ready
上绑定这些事件对你没有好处。您需要live绑定这些相同的事件,或者从父元素中delegate绑定它们。
通过这个简单的测试可以很容易地展示出来:
alert($("#home").length);
会提醒0
尝试使用此解决方案
$(document).ready(function(){
$("#response").load("start.html");
$("#home").live("click", function(){
$('#response').load('start.html', function() {
resizefunc();
});
});
});
或
$(document).ready(function(){
$("#response").load("start.html");
$("#response").delegate("#home", "click", function(){
$('#response').load('start.html', function() {
resizefunc();
});
});
});
使用live
或delegate
将此选择器绑定到单击而不是常规点击事件将允许为现在存在且可能在将来存在的所有选定元素存在已分配的函数。 / p>