scrollTo插件不滚动导航外的链接

时间:2012-07-13 19:17:20

标签: javascript flash

我在avalonbyeaw.com的导航栏上成功实现了scrollTo脚本,我的客户希望从主页添加链接。容易,对吗?我猜不会。它不仅不会滚动,而且还会将#finishes添加到我们从导航链接中删除的网址中。我猜我只需要在某处添加链接到某个功能?我无法理解。

的Javascript

$(document).ready(function() {

    $('a.panel').click(function () {

        $('a.panel').removeClass('selected');
        $(this).addClass('selected');

        current = $(this);

        $('#wrapper').scrollTo($(this).attr('href'), 800);      

        return false;
    });

    $(window).resize(function () {
        resizePanel();
    });
});

function resizePanel() {

    width = $(window).width();
    height = $(window).height();

    mask_width = width * $('.item').length;

    $('#debug').html(width  + ' ' + height + ' ' + mask_width);

    //$('#wrapper, .page').css({width: width, height: height});
    //$('#stage').css({width: mask_width, height: height});
    $('#wrapper').scrollTo($('a.selected').attr('href'), 0);
}

使用导航链接html

<div id="nav-finishes" class="nav"><a href="#finishes" class="panel panel-finishes" alt="finishes"><img src="images/spacer.gif" height="10" width="79" border="0" /></a></div>

非工作链接已添加到piecemaker xml Feed

<Text>&lt;p&gt;Avalon by EAW features automotive-class finishes on all trim pieces. &lt;a href="#finishes" class="panel"&gt;Optional premium enclosure finishes&lt;/a&gt; set these systems in a class by themselves.&lt;/p&gt;</Text>

1 个答案:

答案 0 :(得分:0)

jQuery无法将点击事件处理程序附加到flash内部返回的XML,这就是您的脚本失败的原因。

可能是油腻的黑客:

尝试在XML中返回类似的内容。

&lt;a href="#finishes" onClick="$('#nav-finishes a').trigger('click'); return false;" class="panel"&gt;

这里的想法是,当用户点击xml中的链接时,它将触发主导航的虚拟点击,我们知道这已经在工作。

可能更好的黑客攻击:

安装此jQuery插件:http://benalman.com/projects/jquery-hashchange-plugin/

然后你可以这样做:

$(window).hashchange( function(e){
     e.preventDefault();
      $('#wrapper').scrollTo(location.hash, 800); 
});

您可以删除$('#wrapper').scrollTo($(this).attr('href'), 800);