2012-04-19 25 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