Javascript似乎没有运行

时间:2014-01-04 22:43:16

标签: javascript

好的,我一直试图让它在30分钟内完成。

在这个jsfiddle中一切正常: - http://jsfiddle.net/6KT4R/1/

但是当我在我的本地wamp服务器上运行时......似乎什么也没发生!。

代码: -

<script src="js/jquery-1.8.2.min.js" type="text/javascript">
    </script>
<script type="text/javascript">
var inputLtc = document.getElementById('input-ltc'),
    inputBtc = document.getElementById('input-btc');

var constantNumber = 0.022632;

inputLtc.onkeyup = function () {
    var result = parseFloat(inputLtc.value) * constantNumber;
    inputBtc.value = !isNaN(result) ? result : '';
};
</script>

<input type="text" name="ltc" id="input-ltc">
<input type="text" name="btc" id="input-btc" readonly>

这里可能有什么问题? 感谢。

2 个答案:

答案 0 :(得分:3)

脚本在加载DOM之前执行。尝试:

window.onload = function(){
    var inputLtc = document.getElementById('input-ltc'),
    inputBtc = document.getElementById('input-btc');

    var constantNumber = 0.022632;

    inputLtc.onkeyup = function () {
        var result = parseFloat(inputLtc.value) * constantNumber;
        inputBtc.value = !isNaN(result) ? result : '';
    };
}

正如m59所说,有一种改进的方法来执行事件onload。以下代码段是首选:

   var funct = function(){
        var inputLtc = document.getElementById('input-ltc'),
        inputBtc = document.getElementById('input-btc');

        var constantNumber = 0.022632;

        inputLtc.onkeyup = function () {
            var result = parseFloat(inputLtc.value) * constantNumber;
            inputBtc.value = !isNaN(result) ? result : '';
        };
    }

    if (window.attachEvent){
       window.attachEvent('onload', funct);
    }else{
       element.addEventListener('load', funct, false);
    }

答案 1 :(得分:2)

您在页面上存在元素之前获取元素引用。在jsfiddle中,javascript在html之后执行。您可以通过在相关的html下面移动脚本标记来重现这一点。最好将所有脚本标记放在正文结尾之前,如下所示:

  <script></script>
</body>

否则,您需要注册一个事件监听器来监视页面加载并执行您的javascript代码。

window.addEventListener('load', function() {
  console.log('loaded!');
});
使用jQuery

$(document).ready(function() {
  console.log('loaded!');
});

//this is the jQuery shorthand for the same function above
$(function() {
  console.log( "loaded!" );
});