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 */ )};