2010-05-28 9 views
0

이 코드 작업은 FF와 IE이지만 Chrome에서는 작동하지 않습니다. 어떤 도움이라도 대단히 감사하겠습니다. 감사합니다! 이 코드는 독자적으로 잘 작동하지만이 페이지 (http://www.automotive-fleet.com)에서 호스팅 될 때 Chrome 및 Safari에서는 작동하지 않습니다. 나는 이유를 알 수 없다. 어떤 도움을 주시면 감사하겠습니다. 여기크롬에서 jquery 코드가 작동하지 않습니다.

는 CSS를 여기

#popularsearches 
{ 
    border-bottom: 1px solid #D4D4D4; 
    border-left: 1px solid #D4D4D4; 
    border-right: 1px solid #D4D4D4; 
    overflow:hidden;  
    height: 130px; width:248px; 
    margin-bottom:20px; 
} 

#popularsearches ul 
{ 
    padding:0 5px 0 0; 
    margin:0; 
} 

#popularsearches ul li 
{ 
    list-style-type:none; 
    list-style-position:inside; 
    border-bottom: solid 1px #D4D4D4; 
    font-size:14px; 
    padding:3px 0 3px 0; 
    margin:0 0 0 10px; 
    text-align:left; 
} 

#popularsearches ul li a 
{ 
    text-decoration:none; 
} 

#popularsearches ul li a:hover, a:link, a:visited 
{ 
    text-decoration:none; 
} 

#popularsearches-inside 
{ 
    width: 500px; 
} 

#popularsearches-left 
{  
    float:left; 
    width:250px; 
    height:100px; 
} 

#popularsearches-right 
{  
    float:left; 
    width:250px; 
    height:100px; 
} 

는 다음과 같은 사업부의 불확실한 마크 업 될 수있는 jQuery를

var closeinterval = 0; 

    function scrollContent() { 
     //Toggle left between 250 and 0 
     var top = jQuery("#popularsearches").scrollLeft() == 0 ? 250 : 0;    
     jQuery("#popularsearches").animate({ scrollLeft: top }, "slow"); 
    } 

    // Call scrollContent function every 6 secs 
    closeinterval = setInterval("scrollContent()", 6000); 

    jQuery(document).ready(function() { 
     jQuery("#popular-button-left").bind("click", function() { 
      if (closeinterval) { 
       window.clearInterval(closeinterval); 
       closeinterval = null; 
      } 

      jQuery("#popularsearches").animate({ scrollLeft: 0 }, 1000); 
     }); 
     jQuery("#popular-button-right").bind("click", function() { 
      if (closeinterval) { 
       window.clearInterval(closeinterval) 
       closeinterval = null; 
      } 

      jQuery("#popularsearches").animate({ scrollLeft: 250 }, 1000);     
     }); 
    }); 
+2

폴, 나는되고 싶지 않아 말하지만, 자바 스크립트 블록에 몇 가지 서식을 추가 할 수 있습니까? : P 편집 : nvm, Nick 이미 해냈어. –

+0

어디에서 호스팅합니까? 문제를 훨씬 쉽게 찾을 수 있습니다. –

+0

은 나를 위해 Chrome에서 작동합니다. http://jsfiddle.net/bZ9c9/ – Anurag

답변

4

변경이 줄이로

closeinterval = setInterval("scrollContent()", 6000); 

:

closeinterval = setInterval(scrollContent, 6000); 

이 나를 위해 그것을 해결 .. 참조 예 here

+4

@Matt -'setInerval'은 Javascript 표현식을 사용하므로'setInterval ("scrollContent()", 6000)'이 유효합니다. 그 이유는 jsfiddle의 코드가 onLoad 콜백 함수로 래핑되고'scrollContent' 함수가 그 외부에 존재하지 않기 때문입니다. 그러나, 단순히'setInterval'에 함수를 넘기면 함수에 대한 직접적인 참조를 가지므로 scope는 중요하지 않습니다. 왼쪽 위의 'onLoad'에서'wrap 안 함 '으로 설정을 변경하면 OP 코드가 그대로 작동합니다. – Anurag

+0

@Anurag - 매트가''scrollContent() ''로 작동하지 않는 이유가 궁금 해서요. 처음으로''포장 안함'옵션을 발견 할 때까지 당신의 것이 었습니다. 코멘트를 남기려고했으나 그것을 덮었습니다. :) – user113716

+0

그건 내가''eval'을 싫어하기 때문에 그걸 제거하고 있었기 때문에 실제로 기분이 나아졌습니다. 나는 놀랍게도 변화를 가져 왔지만, 나는 추측 할 수있는 신비를 너무 기꺼이 받아 들인다.) – Matt

1

입니다 html로 여기

<div id="popularsearches"> 
<div id="popularsearches-inside"> 
    <div id="popularsearches-left"> 
       <ul> 
       <li>Item One </li> 
       <li>Item Two </li> 
       <li>Item Three </li> 
       <li>Item Four </li> 
       <li>Item Five</a> </li> 
       </ul> 
    </div> 
    <div id="popularsearches-right"> 
       <ul> 
       <li>Item Six </li> 
       <li>Item Seven </li> 
       <li>Item Eight </li> 
       <li>Item Nine </li> 
       <li>Item ten </li> 
       </ul> 
    </div> 
</div> 
</div> 

입니까?

<div id="popularsearches-left"> 
      <ul> 
      <li>Item One </li> 
      <li>Item Two </li> 
      <li>Item Three </li> 
      <li>Item Four </li> 
      <li>Item Five</a> <-- renegade closing tag</li> 
      </ul> 
</div> 
관련 문제