单个WordPress页面上的单个JavaScript函数

单个WordPress页面上的单个JavaScript函数,javascript,jquery,wordpress,Javascript,Jquery,Wordpress,我已经阅读了一些关于如何将JavaScript添加到WordPress页面的文章,尽管对于我所需要的内容来说,这似乎过于复杂。我有这个小脚本(见下文),我希望它只在一页上工作。我原以为在主要内容之后的标记中添加它可以达到目的,但在控制台中出现以下错误: 未捕获类型错误:未定义不是函数 尽管脚本在控制台中工作正常,但它不工作 对于这个脚本,我必须使用复杂的方法,还是有更简单的方法 $('#tSubmit')。在('click',function()上{ var amt=+$('#tCount').

我已经阅读了一些关于如何将JavaScript添加到WordPress页面的文章,尽管对于我所需要的内容来说,这似乎过于复杂。我有这个小脚本(见下文),我希望它只在一页上工作。我原以为在主要内容之后的
标记中添加它可以达到目的,但在控制台中出现以下错误:

未捕获类型错误:未定义不是函数

尽管脚本在控制台中工作正常,但它不工作

对于这个脚本,我必须使用复杂的方法,还是有更简单的方法

$('#tSubmit')。在('click',function()上{
var amt=+$('#tCount').val(),
tier=$('#tType').val(),
h=+$('tH').val()>0?+$('tH').val():0,
m=+$('#tM').val()>0?+$('#tM').val():0,
s=+$('#tS').val()>0?+$('#tS').val():0,
时间=((h*60+m)*60+s)/amt;
警报(“第'+Tier+'层部队的个人时间:'+time.toFixed(2)+“秒”);
});

为什么不尝试为该功能创建一个单独的js文件(并在jQuery(document.ready())上执行它),然后使用wp\u enqueue\u script('scrip name','script url',array('jQuery')从页面中引用它呢。这将使您的脚本在jQuery加载后加载。

为什么不尝试为该功能创建一个单独的js文件(并在jQuery(document.ready())上执行它,然后使用wp\u enqueue\u script('scrip name','script url',array('jQuery')从页面中引用它。这将使您的脚本在加载jQuery后加载。

在WordPress中,jQuery是使用函数加载的,这意味着
$
变量被别名为
jQuery
,以避免与其他Javascript库冲突

只要将
$
替换为
jQuery
,您就可以将javascript包含在页面模板中,甚至包含在文章内容中(如果您使用的是文本编辑器,而不是可视化的)

jQuery('#tSubmit').on('click', function() {
    var amt = +jQuery('#tCount').val(),
        tier = jQuery('#tType').val(),
        h = +jQuery('#tH').val() > 0 ? +jQuery('#tH').val() : 0,
        m = +jQuery('#tM').val() > 0 ? +jQuery('#tM').val() : 0,
        s = +jQuery('#tS').val() > 0 ? +jQuery('#tS').val() : 0,
        time = ((h*60+m)*60+s)/amt;
    alert('Individual time for Tier ' + tier + ' troops: ' + time.toFixed(2) + ' seconds');
});
如果不想更改代码,可以将
jQuery
变量传递到以
$
为参数的函数中,并按原样使用代码

(function($){
    // your code goes here and jQuery is known as $
    // $(document).on()... or whatever
})(jQuery);

在WordPress中,jQuery是使用函数加载的,这意味着
$
变量被别名为
jQuery
,以避免与其他Javascript库冲突

只要将
$
替换为
jQuery
,您就可以将javascript包含在页面模板中,甚至包含在文章内容中(如果您使用的是文本编辑器,而不是可视化的)

jQuery('#tSubmit').on('click', function() {
    var amt = +jQuery('#tCount').val(),
        tier = jQuery('#tType').val(),
        h = +jQuery('#tH').val() > 0 ? +jQuery('#tH').val() : 0,
        m = +jQuery('#tM').val() > 0 ? +jQuery('#tM').val() : 0,
        s = +jQuery('#tS').val() > 0 ? +jQuery('#tS').val() : 0,
        time = ((h*60+m)*60+s)/amt;
    alert('Individual time for Tier ' + tier + ' troops: ' + time.toFixed(2) + ' seconds');
});
如果不想更改代码,可以将
jQuery
变量传递到以
$
为参数的函数中,并按原样使用代码

(function($){
    // your code goes here and jQuery is known as $
    // $(document).on()... or whatever
})(jQuery);

您的页面上是否包含jQuery?您确定表单显示在页面上后代码会被执行吗?wordpress主题可能使用noConflict,请尝试将
$
替换为
jQuery
是的,jQuery包含在主题中。在单击
#tSubmit
之前,脚本不会执行。@Andrewoffman您不能立即将其标记为答案。我现在想你的页面上是否包含jQuery?你确定你的代码在表单显示在页面上后执行吗?wordpress主题可能使用noConflict,尝试将
$
替换为
jQuery
是的,jQuery包含在主题中。在单击
#tSubmit
之前,脚本不会执行。@Andrewoffman您不能立即将其标记为答案。不过我现在有了