2012-04-19 69 views
0

对于下面的代码(使用JavaScript/jQuery)我在我的网站上控制幻灯片/预览滑块类型小部件。它工作得很好。我们有小型的指示框,可以突出显示您所在的可用幻灯片。它们也可以工作。但由于某种原因,每个人之间都会出现单引号。我能够将其追溯到我在下面以大写形式注释的行中。你看到的最后一个单引号似乎正在引起它,但是当我删除它时,它会打破代码。为什么这个单引号是必需的?我无法分辨它与什么搭配。额外的单引号 - 无法摆脱它

for(var i = -1; i < numberOfSlides; i++) 
    { 
     $('#locationBar').append("<span class='locator' id='locator_" + i + "'><a></a></span>'"); 
//THE LAST SINGLE QUOTE HERE IS WHAT IS CAUSING THE QUOTES BETWEEN THE SLIDE INDICATORS. GETTING RID OF IT BREAKS IT THOUGH. INVESTIGATE. 
     if(i < 0) 
     { 
      $('#locator_' + i).css('visibility','hidden'); 
      continue; 
     } 
     $('#locator_' + i).bind('click',function(){window.location=$('#link_' + currentPosition).attr('href');}); 
     $('#locator_' + i).hover(function(){ 

      var newPosition = 0; 
      for(var j = 0; j < numberOfSlides; j++) 
      { 
       if($(this).attr('id') == "locator_" + j) 
       { 
        newPosition = j; 
       } 
      } 
      if(currentPosition==newPosition) 
       return; 

      jump(currentPosition,newPosition); 


      currentPosition=newPosition; 

      clearTimeout(delayTimer); 
      delayScroll(); 
     }); 
    } 
+1

'.append( “<跨度类= '定位器' 的id ='locator_” + I +“ '>' “);'应'.append(” “);'如果那个”打破“它,定义什么是break意味着什么。考虑设置一个jsfiddle。 – Snuffleupagus 2012-04-19 18:28:47

+0

删除它不会破坏我的代码。 http://jsfiddle.net/ySGCb/你的问题可能在其他地方? – 2012-04-19 18:31:36

+0

@rar:当你删除单引号时,你的文本编辑器或ide搞乱了语法高亮吗? – jlaceda 2012-04-19 18:39:57

回答

0

EDITED

混合单和双引号一个同一句话中可能会引起问题。

$('#locationBar').append('<span class="locator" id="locator_' + i + '"><a></a></span>'); 

尽管user1277499的答案也应该解决这个问题,它不工作?

+2

OP做到了这一点,并表示删除它会破坏代码。 – 2012-04-19 18:30:58

+0

必须有另一个原因。最后一个'''是无配对的。你可以在最后一个'''之前写下任何东西,而不会破坏代码。 – Teemu 2012-04-19 18:37:28

+0

是的,我知道,要点是你告诉OP完成目前正在完成的任务 – 2012-04-19 18:41:05

0

只是逃避的字符串。
它是有道理的,你会得到额外的报价。
你行的末尾是

"'><a></a></span>'" 

所以,你得到的双引号内的引号。

逃脱例如:

$('#locationBar').append('<span class=\'locator\' id=\'locator_' + i + '\'><a></a></span>'); 
+0

这很不幸也没有效果。我将不得不挖掘整个文档来找出这个奇怪的配对发生在哪里 – muttley91 2012-04-20 00:35:53

+0

我输入错误,正确的代码是:$('#locationBar')。append('');:我刚刚测试过这个版本,但我的旧版本无法正常工作,对不起测试我的答案,但这条新线路确实有效。在locator_后添加了一个转义报价,这就是缺陷。 – Chris 2012-04-20 21:24:33

+0

我将编辑我的答案,以便显示更正的代码。 – Chris 2012-04-20 21:27:18