$(document).ready(function(){
function loadURL(url){
$('#ajax').load(url, function(){
history.pushState('', 'My Website', baseurl + url);
});
}
$(document).on('click', 'a[rel!=external]', function(event){
event.preventDefault();
loadURL($(this).attr('href'));
});
});
再次问好stackoverflow!
我有一些内容是我通过AJAX加载的。现在我要加载link.html
,其中包含这段代码:
<script>
loadURL('code.txt');
</script>
以便加载link.html
后,它会直接加载code.txt
。
可悲的是,调用在$(document).ready()
中创建的函数似乎不起作用,因为它由于某种原因未定义。所以我试过
<script>
$(document).ready(function(){
loadURL('code.txt');
});
</script>
但这似乎也没有用。
有解决方法吗?
答案 0 :(得分:0)
这是因为函数loadURL
在另一个函数内声明,声明的函数对容器函数是私有的。
解决方案是将它声明为全局函数,因为您也希望从其他上下文调用该函数。它不会产生与dom ready状态相关的问题,因为函数是在dom ready回调中调用的。
function loadURL(url){
$('#ajax').load(url, function(){
history.pushState('', 'My Website', baseurl + url);
});
}
$(document).ready(function(){
$(document).on('click', 'a[rel!=external]', function(event){
event.preventDefault();
loadURL($(this).attr('href'));
});
});