解决JS函数object is not a function的bug
今天写一个JS函数的时候,发现怎么也运行不了这个函数,一直报错:object is not a function。
但是如果单独只写js,把页面给分开,是没有问题的,那么出现这个问题一定是页面出现了问题。
假如说,我们的这个函数是test(),点击按钮运行这个函数,下面是代码。
1 2 3 4 5 6 7 8 9 10 11 | <input type="radio" name="test" onclick="test();"/> <br /> <form action=""> <input type="radio" name="test" onclick="test();"/> </form> <script type="text/javascript"> function test(){ alert("11"); } </script> |
当然这只是代码中的一小部分,通过逐步排查,问题应该就出现在这里。
看着代码发现一个radio对象的name属性和一个function name重名了。
我们输出这个函数看看会出现什么结果。
1 | onclick="alert(test);" |
发现弹出“object HTMLInputElement”,浏览器解析函数test变为dom对象了。
解决办法就是修改函数名称,或者修改name属性值。
jQuery插件使用cookie的方法详解 WordPress 加载 Javascript 和 CSS 的方法
专业贴,不错。