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 には、フラッシュ内で返された 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 に答える