WordPress嵌入式JavaScript在页面上不起作用

我正在尝试复制以下JSFiddle: https ://jsfiddle.net/7nbr6/10/

在我的WordPress网站上。

当我将它复制到网站上时,单击按钮时它什么都不做。

我正在使用此插件将javascript放到我的页面上: https : //wordpress.org/plugins/css-javascript-toolbox/

HTML:

  

Kelly calculator




使用Javascript:

  jQuery('#submit').on('click', function() { var probability = jQuery('#probability').val(); var odds = jQuery('#odds').val(); var balance = jQuery('#balance').val(); result = parseFloat(((probability/100)* (odds - 1) / (odds - 1) * odds - 1).toFixed(4)) * 0.95; var stake = ((balance / 100) * parseFloat((result * 100).toFixed(2))) jQuery('#result').text((result * 100).toFixed(2) + '% of' + balance + '€ which is ' +stake + '€'); });  

代码肯定嵌入到页眉中(通过查看页面源可见),但按钮不起作用。

我最初认为这是一个问题,noConflict()在这里详述: TypeError:$不是调用jQuery函数时的函数

我在编辑器中(插件内部)也有这个错误,但是当我导航到页面时它不会出现在控制台中:

http://sofzh.miximages.com/javascript/3FKt1Mi.png

我尝试删除脚本标记,但它只是将其作为文本放入标题中。

谢谢你的帮助

您正在尝试在DOM准备好之前将处理程序附加到元素。 将代码包装在ready处理程序中可以解决此问题:

 jQuery(function() { jQuery('#submit').on('click', function() { var probability = jQuery('#probability').val(); var odds = jQuery('#odds').val(); var balance = jQuery('#balance').val(); result = parseFloat(((probability/100)* (odds - 1) / (odds - 1) * odds - 1).toFixed(4)) * 0.95; var stake = ((balance / 100) * parseFloat((result * 100).toFixed(2))) jQuery('#result').text((result * 100).toFixed(2) + '% of' + balance + '€ which is ' +stake + '€'); }); }); 

围绕JavaScript的代码是jQuery的.ready事件的简写。

当你的代码加载时,jQuery还没有准备好。 因此,您的代码完全被忽略。

把你的代码放在里面:

 jQuery(function() { /* your code here */ )};