2011-08-19 40 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"}); 
    }); 
});