2012-07-27 71 views
1

我不太确定为什么我的代码造成这种情况。未被捕获的语法错误在JS和可能的Wordpress

我在这头jQuery脚本:

<script> 
    $(document).ready(function() { 
     $('.control').on('click', function(e) { 
      e.preventDefault(); 
      var field = $(this).data('field'); 
      $('.hider:visible').fadeOut("slow", function() { 
       $('#' + field + '-gallery, #' + field + '-tag').fadeIn("slow"); 
      }); 
     }); 

     var randomIndex = Math.floor((Math.random() * 100) + 1) % 3; 
     console.log(randomIndex); 

     var field = $($('a').get(randomIndex)).data('field'); 
     $('#' + field + '-gallery, #' + field + '-tag').fadeIn("slow"); 
    })​; 
    </script> 

,当我重新加载页面,什么都不会发生,因此出现的脚本不运行。当我检查在Chrome的页面,我看到有这个错误是在一个叫(程序)标签,它是在第几行线:

if (window.top.require) { 
Uncaught SyntaxError: Unexpected token ILLEGAL 
    window.top.require("ripple/bootstrap").inject(window, document);} 

我不知道它是什么在我的代码导致这个错误。当我拿出我的剧本时,它就消失了。不太确定它是否与wordpress或jqueryUI(我已经加载了另一个插件)。

+0

这似乎是相同的问题,看看http://stackoverflow.com/questions/5733275/chrome-uncaught-syntax-error-unexpected-token-illegal – Ryank 2012-07-27 16:03:40

+0

是的,我看到了,但我没有想法那里会抛出那个随机的角色或什么。我从JSFiddle复制并粘贴了jquery代码,但我失去了试图以某种方式去除它的问题。 – ultraloveninja 2012-07-27 16:09:31

回答

5

您在);之间的最后一行有非法隐形字符。

将光标放在;之后,并开始退格,直到删除),然后重新键入它们。

})​; 
// ^^---between these 

你会注意到,当退格时,光标将无法移动一次。那是不可见角色被删除的时候。

这种情况发生在从jsFiddle或其他类似网站复制/粘贴代码时。

该字符是unicode \u200B

+0

好吧,那就摆脱了错误。但它仍然没有显示应该可见的div。 这太疯狂了,如何在那里添加。现在我想知道是否有其他东西在那里漂浮,可能导致它不工作。感谢您的帮助! – ultraloveninja 2012-07-27 16:16:35

0

据我所知,脚本代码,你不知道它从何而来,是由黑莓模拟器Ripple产生的,当它插入一个生成的脚本您document.documentElement中(see at GitHub)。我已经看到这种行为在我的许多项目中造成问题,例如,使用dataType HTML插入到ajax结果中,并且混淆了我的选择器,或者让我的ajax响应变得更加肮脏并与jquery表单插件结合在一起(无法链接到它,因为没有足够的声誉)等等,我认为这可能会干扰您的JavaScript?希望能帮助到你。

相关问题