Javascript函数在控制台中工作,但在代码中不起作用

时间:2015-10-13 14:36:21

标签: javascript jquery

我正在尝试安装一个用于输入屏蔽的jQuery插件。我已经将js文件包含在内了,我尝试根据文档对其进行初始化:

<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之前。怎么办?

2 个答案:

答案 0 :(得分:1)

即使你检查了加载顺序,它似乎确实是问题所在。在您使用控制台时,所有内容都已加载。但是在脚本中它会尽快运行。 Document Ready等待DOM,但不一定是所有脚本,具体取决于它们的加载方式。此外,请确保只包含一个核心jQuery文件(在某些系统上,它可能会被意外地多次包含)。

下一个调试步骤是在调用autoNumeric时设置断点,以便您可以检查当时JavaScript负载的状态。

答案 1 :(得分:0)

您必须将脚本添加到其他文件(外部javascript.js文件)中,并将其链接到HTML并提供
<body onload="functionname()">。它要做的是,在页面加载后运行脚本。
如果您不理解,请参阅this
最好的祝愿..!