0

我在avalonbyeaw.com的导航上成功实现了 scrollTo 脚本,我的客户希望从主页添加链接。容易,对吧?我猜不是。它不仅不会滚动,而且还会添加#finishes到我们从导航链接中删除的 URL。我猜我只需要将链接添加到某处的函数?我想不通。

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提要中的非工作链接

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

1 回答 1

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

于 2012-07-13T21:40:29.207 回答