2011-08-19 5 views
0

내 코드로 scrollTO 함수를 수행하려고하지만이 ID에 연결하지 않는 것처럼 위쪽으로 튀어 나오지 않습니다.문자열을 사용하는 scrollTO

<div class="a-z"> 
<? $a1=range("A","Z"); 
    foreach($a1 as $char2){ 
    echo "<a href='#$char2' onclick='$.scrollTo('#$char2', 800, {easing:'elasout'}); title='$char2'>$char2</a>"; 
    }?> 

    <script type="text/javascript"> 
$(document).ready('#<?php echo $char2 ?>').localScroll({ 
    target:'<?php echo $char2 ?>' 
}); 
</script> 
</div> 

코드는 내가 PHP 변수로이 하나를 시도

+3

생성 된 최종 HTML 코드 및 JavaScript 오류가 표시 될 수 있습니다. –

+0

귀하의 문제는 귀하의 속성에 작은 따옴표를 사용하고 속성에도 동일하게 적용됩니다. onclick = '...'# $ char2 '...' – ZeissS

답변

0
<? $a1=range("A","Z"); 
    foreach($a1 as $char2){ 
    echo "<a href='#' onclick='$.scrollTo(\'#{$char2}\', 800, {easing:\'elasout\'});' title='{$char2}'>{$char2}</a>"; 
    }?> 

오류 얻을 해달라고 업데이트 따옴표 "$의 char2는"이} {로 묶어야합니다 값 :

을 받고 있지 않습니다
+0

나는 당신을 시도했는데 버튼을 클릭했을 때 아무것도하지 못했습니다. – user874185

+0

위의 코드에서 변경 사항을 적용하여 클릭시 작은 따옴표를 이스케이프 처리하십시오 행사. 또한 브라우저에서 생성 된 html 코드를 살펴보십시오. – rahul

0

rahul이 거의 옳았지만 onclick의 작은 따옴표 안에 이스케이프 된 큰 따옴표를 사용해야합니다. PHP 파서가 'echo'인수를 끝내고 있다고 생각하지 않도록 이스케이프 처리하십시오. 스크립트 태그에서

<? $a1=range("A","Z"); 
    foreach($a1 as $char2){ 
    echo "<a href='#' class='linkClass' data-destination='#{$char2}' title='{$char2}'>{$char2}</a>"; 
}?> 

:

$(document).ready(function() { 
    $(".linkClass").click(function() { 
     //On a click event, get the destination data attribute, then scroll to it 
     $.scrollTo($(this).data("destination"), 800, {easing: "elasout"}); 
    }); 
}); 

<? $a1=range("A","Z"); 
    foreach($a1 as $char2){ 
    echo "<a href='#' onclick='$.scrollTo(\"#{$char2}\", 800, {easing:\"elasout\"});' title='{$char2}'>{$char2}</a>"; 
}?> 

더 나은 솔루션, 다음 클릭 핸들러를 할당 할 jQuery를 사용하여 해당 링크 클래스 및 사용자 정의 데이터 속성을 모두주고있다