scrollTO with strings

时间:2011-08-19 06:31:15

标签: php jquery scrollto

我正在尝试使用我的代码执行一个scrollTO函数,但我只是弹出顶部,就像它没有连接到id我告诉它去哪里我做错了什么?。

<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>

代码已更新我没有收到任何错误

2 个答案:

答案 0 :(得分:0)

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

尝试这个,因为单引号中的php变量“$ char2”没有得到它应该包含在{}中的值:)

答案 1 :(得分:0)

rahul几乎是正确的,但你需要在onclick的单引号中使用转义双引号。逃避它们,以便php解析器不认为你正在结束'echo'参数。

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

更好的解决方案是为所有这些链接提供类和自定义数据属性,然后使用jQuery分配单击处理程序:

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