Javascript JQuery函数在移动到js文件时停止工作
我一直在开发我的脚本,现在想开始将它们移动到js文件中。但是,我移动的第一个脚本将无法从js文件中工作Javascript JQuery函数在移动到js文件时停止工作,javascript,jquery,Javascript,Jquery,我一直在开发我的脚本,现在想开始将它们移动到js文件中。但是,我移动的第一个脚本将无法从js文件中工作 function listEvents(url, phash) { var hashlocation = phash.split('#')[1]; if (hashlocation === undefined) { var page = ''; } else { var page = hashlocation; } $('
function listEvents(url, phash) {
var hashlocation = phash.split('#')[1];
if (hashlocation === undefined) {
var page = '';
} else {
var page = hashlocation;
}
$('#events').empty().load(url + page);
}
像这样从页面调用
$(window).load(function() {
listEvents('<? echo base_url(); ?>ajax/events_ajax/',window.location.hash);
});
$(窗口).load(函数(){
listEvents('ajax/events_ajax/',window.location.hash);
});
js文件在任何人请求之前加载到头部的jquery库之后。我已清除缓存,将cloudflare置于开发模式等,如果在浏览器中加载JS文件,我将看到我的功能。我在控制台中没有看到任何错误。我遗漏了什么?我想您需要将代码放入
。ready
函数:
$(document).ready(function() {
$(window).load(function() {
listEvents('<? echo base_url(); ?>ajax/events_ajax/',window.location.hash);
});
});
$(文档).ready(函数(){
$(窗口)。加载(函数(){
listEvents('ajax/events_ajax/',window.location.hash);
});
});
说明: 问题是,当您启动代码时,内容尚未完全加载,在您的情况下,我认为这是
#events
。它还不在上,因此被jQuery忽略。如果在HTML文件中运行它,最像是将代码放在
(或任何容器)下面,因为它是在之后执行的,所以找到了该元素,代码按预期方式运行
阅读更多关于
函数:指定当完全加载时要执行的函数.ready()
。ready
功能:
$(document).ready(function() {
$(window).load(function() {
listEvents('<? echo base_url(); ?>ajax/events_ajax/',window.location.hash);
});
});
$(文档).ready(函数(){
$(窗口)。加载(函数(){
listEvents('ajax/events_ajax/',window.location.hash);
});
});
说明: 问题是,当您启动代码时,内容尚未完全加载,在您的情况下,我认为这是
#events
。它还不在上,因此被jQuery忽略。如果在HTML文件中运行它,最像是将代码放在
(或任何容器)下面,因为它是在之后执行的,所以找到了该元素,代码按预期方式运行
阅读更多关于
函数:指定当完全加载时要执行的函数.ready()
:
listEvents('ajax/events\u ajax/',window.location.hash);
检查浏览器开发工具中的网络面板,而不仅仅是控制台。看看你有没有看到404
如果您使用的是内联脚本,它们是PHP,但是在移动到
.js
文件后,这些文件不再由PHP处理。我猜是您的嵌入式PHP
:
listEvents('ajax/events\u ajax/',window.location.hash);
检查浏览器开发工具中的网络面板,而不仅仅是控制台。看看你有没有看到404
如果您使用的是内联脚本,它们是PHP,但在移动到
.js
文件后,这些文件不再由PHP处理。是的,这是问题所在,但它是内联工作的,因此您能否解释为什么必须将其包装在“$(document).ready(function(){};”中使其从外部文件工作,以便我将来能够理解这一点。谢谢。@IliaRostovtsev为什么不干脆去掉$(窗口)。加载以支持$(文档)。准备好了吗?
?谢谢Ilia的解释。@zamnuts还有很多其他方法可以达到预期的效果!是的,这就是问题所在,但它是内联工作的,所以您能解释一下为什么它必须包装在“$(document).ready(function(){});”中吗使其从外部文件工作,以便我将来能够理解这一点。谢谢。@IliaRostovtsev为什么不干脆去掉$(窗口)。加载以支持$(文档)。准备好了吗?
?谢谢Ilia的解释。@zamnuts还有很多其他方法可以达到预期的效果!不,php不在js文件中。它在页面文件中。@Ally,哦,是的,在你的帖子“从页面调用”中遗漏了这个细节,就像这样“不,php不在js文件中。它在页面文件中。@Ally,哦,是的,在你的帖子“像这样从页面调用”中错过了那个细节