Php 为什么$(文档)。准备好不为我开火了吗?
在一个php文件中,我使用了Php 为什么$(文档)。准备好不为我开火了吗?,php,javascript,jquery,Php,Javascript,Jquery,在一个php文件中,我使用了include来包含以下js.php文件 在此之前,我已经包含了jquery文件 <script type="text/javascript"> $(document).ready(function(){ alert("hello"); }); </script> $(文档).ready(函数(){ 警惕(“你好”); }); 但它不起作用。为什么?当我跳过$(document.ready)函数时,它会工作 但是我需要jque
include
来包含以下js.php文件
在此之前,我已经包含了jquery文件
<script type="text/javascript">
$(document).ready(function(){
alert("hello");
});
</script>
$(文档).ready(函数(){
警惕(“你好”);
});
但它不起作用。为什么?当我跳过$(document.ready)函数时,它会工作
但是我需要jquery代码在里面。怎么了
$(函数(){alert(…);})代码>以防万一
根据您所说的,最可能的答案是核心jQuery文件实际上没有正确地包含在页面中。 你需要像这样的东西:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
很可能是缺少或键入不正确。另一个原因将导致静默失败,并且所有剩余的回调从未调用:
$(document).ready(null);
因此,请检查是否存在返回null的变量或语法错误。像这个:
$(document).ready(function($){}(jQuery));
请注意,上面的函数立即被调用,并且返回undefined。而不是$(document).ready(function(){…})
试一试
$(文档).ready(abc())
函数abc(){
....
}
为我工作。我自己找了很多地方,但找不到解决办法。随机试用,效果不错 我遇到了这样的问题,只是把
改成了
,所有的问题都消失了 我也遇到了类似的问题,我就是这么做的
确保document.ready放在javascript文件中定义的回调函数之后
在这里,解析document.ready时尚未定义init
//won't work
$(document).ready(init);
var init = function() {
console.log('init not called');
}
正确的方法:
//Works
var init = function() {
console.log('document is ready');
}
$(document).ready(init);
请注意,$(document).ready(init)放在末尾。还要注意如何定义jquery include标记。似乎出于某种原因,您需要使用两个单独的标签打开和关闭标签。使用一个标记并关闭它似乎不起作用: 作品:
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.js"></script>
不起作用:
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.js"/>
是的,我注意到有时会出现问题,我为此编写了安全解决方案,解决了这个问题
// jquery plugin 'jquery.ready.fix.js'
// @author Szymon Działowski
;(function ($) {
$.fn.ready.old || $(function (r) {
r = $.fn.ready;
$.fn.ready = function (fn) { $.isReady ? fn() : r(fn); };
$.fn.ready.old = r;
});
})(jQuery);
之后,您可以运行以下代码:
$(function () {alert('go')})
而且它总是发出火警警报
PS:这是一种称为“鸭子出击”的技术,更多关于:继Zakas之后,我开始在JavaScript中抛出我自己的错误,作为发现JS问题的一种方法
但不幸的是,这种方法开始导致jQuery ready()函数在站点的不相关部分悄无声息地失败:(
我了解到以下是不同的:
throw new Error()
不同于
console.error()
因此,我开始使用console.error(),但我仍然在控制台中得到了红色高亮显示。要检查的另一点:可能您的程序中存在PHP错误。PHP致命错误退出脚本并
$(文档)。ready
将永远不会执行
根据您的服务器设置或CSS,您可能看不到“致命错误”消息。在我的例子中,未调用document.ready,因为html表单是通过Ajax请求发送到服务器的,并且只收到了文档的一部分-在Ajax请求后未调用document ready
因此,重新加载的部分上的一些按钮没有绑定到事件。单击()atc..因为这些按钮是新的,并且这些事件的绑定仅在第一次准备文档时被调用-不适用于AJAX。刚刚出现这种情况,结果是脚本标记中的拼写错误:
请注意javascript中缺少的“a”。更改为:
修复了该问题。如果上述任何操作都不起作用,另一个肮脏的技巧是在没有任何时间的情况下将函数包装到SetTimeOut函数中,这只是在当前调用堆栈完成执行后将要运行的代码排队
setTimeout(function(){
FillOpenTranscriptionTasks();
});
你也可以发布你的PHP代码吗?发布你收到的错误。如果你在使用firefox,可以通过“工具>错误控制台”访问错误控制台。你在使用其他javascript框架吗?jquery文件的路径正确吗?firebug说$(document).ready(function(){未定义…我的jquery文件有问题吗?您使用的是Mootools吗?…如果是,请确保将jquery设置为兼容如果它说$(document)…不是意味着1)的函数另一个库正在捕获$,或者jQuery没有正确加载。我已经多次看到同样的问题——几乎总是这样出现jQuery标记。甚至我自己也这样做了:)使用Google loader可以帮助避免这些类型的输入错误,以及自动拉下jQuery的更新版本(如果需要):google.com/jsapi“>google.load(“jquery”,“1”);除非您的abc函数返回一个函数,否则此代码不会按照您的想法执行。abc将执行并将返回值发送到$(document).ready()。如果返回值为null,您可能会给其他人造成问题,就像我在回答中解释的那样。您不妨只执行abc();或者(function(){…})();例如,我在
$()中使用了以前未定义的变量作为选择器输入。每个循环回调。