Javascript函数在控制台中工作,但不在代码中
问题描述:
我试图安装一个用于输入掩码的jQuery插件。我已经包括JS文件罚款,我试着按照文档初始化:Javascript函数在控制台中工作,但不在代码中
<script src="autoNumeric.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#balance-input').keyup(function(){
$('.stripe-button').attr('data-amount', $('#balance-input').val());
});
$('#balance-input').autoNumeric('init');
});
</script>
第一KEYUP功能工作正常,是毫无关系的第二功能。在控制台中,我得到一个autoNumeric未定义的错误。然后我输入$('#balance-input')。autoNumeric('init');进入控制台,它工作没有问题。它位于document.ready中,插件包含在document.ready之前。该怎么办?
答
即使您检查了加载顺序,它确实看起来是问题。在您使用控制台时,所有内容都已加载。但是在脚本中它会尽快运行。 Document Ready等待DOM,但不一定是所有脚本,具体取决于它们的加载方式。另外,确保只包含一个核心jQuery文件(在某些系统上可能会偶然包含多次)。
下一个调试步骤是在调用autoNumeric时设置一个断点,以便您可以检查JavaScript负载的状态。
你能解释你如何包含你的javascript文件吗?听起来像包含这个文件的代码是在插件之前加载/包含的。 – donnywals
你可以创建一个小提琴或片段? – j08691
小提琴将有助于调试 –