2011-08-19 42 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> 

代碼更新,我沒有得到任何錯誤

+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>"; 
    }?> 

試試這個作爲PHP變量「$ CHAR2」在單引號是沒有得到它的價值應該被包含在{} :)

+0

我試過你,它沒有做任何事情,當我點擊按鈕 – user874185

+0

請做出我在上面的代碼中完成的更改,以便在單擊時跳過單引號事件。也看看在瀏覽器中生成的HTML代碼。 – rahul

0

rahul幾乎是正確的,但是您需要在onclick的單引號內使用雙引號。逃脫它們,所以PHP解析器不認爲你正在結束'回聲'論點。

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

更好的解決辦法是給這些鏈接一個類和一個自定義的數據屬性,然後使用jQuery來分配一個click處理程序:

<? $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"}); 
    }); 
});