虽然没有错误,但为什么javascript函数无法正常工作?

问题描述:

这里是代码:虽然没有错误,但为什么javascript函数无法正常工作?

<div id="one"> 
<div class="options-parameters-input"> 
This is testing 
</div> 
</div> 
<br /><br /><br /><br /><br /><br /><br /> 
<table width="750" border="1" cellspacing="3" style="float:left;"> 
    <tr> 
    <td>Type font size</td> 
    <td><textarea id="heretype"></textarea></td> 
    </tr> 
</table> 

$("#heretype").on("keyup",both); 

function both(){ 
$(".options-parameters-input").css("fontSize", this.value + "px"); 
} 

链接的jsfiddle

http://jsfiddle.net/gxTuG/106/

所以这个代码在的jsfiddle如你所看到的,但是当我这个代码传输到我的phpBB的主题,然后一些未知的原因,它不工作......并在Firefox开发工具没有错误..所以我不知道为什么不工作?什么可能是一个问题。

,如果我尝试使用$("#heretype").addEventListener("keyup",both);代替.on 然后我收到错误:

TypeError: $(...).addEventListener is not a function

所有包括这个JavaScript函数存储在从页脚名为.js文件。

我也有加入

之后,它只是显示在控制台1号

请你能帮助我

谢谢

+7

您是否正在运行document.ready处理程序中的代码?例如。 '$(function(){/ *您的代码在这里* /});' –

+6

您是否实际上将javascript嵌入'

+1

为了扩展@RoryMcCrossan的说法,它取决于phpBB如何托管代码。如果脚本被提升到文档的'

',则需要将代码包装在'$(function(){...});'也称为文档就绪块。如果没有这个,事件将尝试绑定到一个在页面上找不到的元素,并且永远不会执行。请注意,它也不会像你的情况一样抛出错误。要查看是否发生了这种情况,请添加'console.log($('#heretype')。length);'作为脚本中的第一条语句。然后运行脚本并检查控制台... – War10ck

您需要声明JS部分作为脚本通过将其包裹在<script>这样的标签中:

<script type="text/javascript"> 

$.noConflict(); 

jQuery(document).ready(function($) { 

    $("#heretype").on("keyup",both); 
    function both(){ 
     $(".options-parameters-input").css("fontSize", this.value + "px"); 
    } 
}); 

</script> 

N.B. type="text/javascript"是为了向后兼容,但在新的浏览器中,它不再需要。

+1

@cale_b:DOM如果脚本包含在它引用的元素之后,则不需要准备包装函数... –

+0

@GoneCoding - 皮带+吊带。我知道*在这种情况下可能不需要,但它不会受到伤害。 –

+0

@cale_b感谢您的支持。编辑。 –