Jquery 必须加载两次才能工作,否则会失败
Jquery has to load twice to work or it fails
我有我的 wordpress 页面,显然它已经加载了 JQuery,但如果我不再加载它(而且版本完全相同),我使用的任何 Jquery 功能都将无法显示$ 无法识别。
示例:https://delaytelo.com/recipes/
它加载了两次,但从 cloudflare 中删除一次会导致分页...
根据评论,您需要这样做:
jQuery(document).ready(function($) {
$(document).on('click','#calculatecal',function(){
$("#caloryresult h3").html( $("input[name=calculation-1]").val() + " Kcal");
});
});
原因不是您在 jQuery 初始化之前尝试使用它。实际原因是:
- WordPress 将 jQuery 添加为
jQuery
而不是 $
。在 WordPress 站点中,jQuery 永远不会缩写为 $
,因为它可能与其他以 $
作为标识符的 javascript 库冲突。
如果您将 $
作为参数提供,您仍然可以在文档就绪回调中使用它,因为 jQuery 被编程为提供自己的对象作为此文档就绪函数的参数。所以这个:function($)
将使 jQuery 对象在函数内部可用为 $
.
- 你必须告诉 jQuery 等待 DOM 准备好才能操作 DOM。这就是为什么应该使用
jQuery(function($){});
...
对于想知道问题出在哪里的人:使用 Jquery 时没有检查 Jquery 是否已加载的功能。例如:
jQuery(文档).ready(函数($) {
})
阅读更多:
How do I add a simple jQuery script to WordPress?
我有我的 wordpress 页面,显然它已经加载了 JQuery,但如果我不再加载它(而且版本完全相同),我使用的任何 Jquery 功能都将无法显示$ 无法识别。
示例:https://delaytelo.com/recipes/ 它加载了两次,但从 cloudflare 中删除一次会导致分页...
根据评论,您需要这样做:
jQuery(document).ready(function($) {
$(document).on('click','#calculatecal',function(){
$("#caloryresult h3").html( $("input[name=calculation-1]").val() + " Kcal");
});
});
原因不是您在 jQuery 初始化之前尝试使用它。实际原因是:
- WordPress 将 jQuery 添加为
jQuery
而不是$
。在 WordPress 站点中,jQuery 永远不会缩写为$
,因为它可能与其他以$
作为标识符的 javascript 库冲突。
如果您将 $
作为参数提供,您仍然可以在文档就绪回调中使用它,因为 jQuery 被编程为提供自己的对象作为此文档就绪函数的参数。所以这个:function($)
将使 jQuery 对象在函数内部可用为 $
.
- 你必须告诉 jQuery 等待 DOM 准备好才能操作 DOM。这就是为什么应该使用
jQuery(function($){});
...
对于想知道问题出在哪里的人:使用 Jquery 时没有检查 Jquery 是否已加载的功能。例如: jQuery(文档).ready(函数($) {
}) 阅读更多: How do I add a simple jQuery script to WordPress?