0

無限スクロールに jquery プラグインを使用しており、実行する必要があるクライアント側のスクリプトを除いて完全に機能しています。

私の無限スクロールスクリプトは次のとおりです。

<script type="text/javascript">
    $('.infinite-container').waypoint('infinite', {
      container: 'auto',
      items: '.infinite-item',
      more: '.infinite-more-link',
      offset: 'bottom-in-view',
      loadingClass: 'infinite-loading',
      onBeforePageLoad: $.noop,
      onAfterPageLoad: $.noop
    });
</script>

私がする必要があると思うのは、これを使用してサーバー側のスクリプトを呼び出すことです。

onAfterPageLoad:

私の主な問題は、Twitter と Facebook のボタンが読み込まれないことです。私が見ることができるのは「twitter」という言葉だけで、Facebookのボタンはまったく表示されません。しかし、最初のページでは問題なくロードされます。

私はどういうわけかこれをもう一度ロードする必要があります:

<div id="fb-root"></div>
<script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_GB/all.js#xfbml=1&appId=***********";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

これらと同様:

    <script>
        $(document).ready(function() {
            $('.container').stickem();
        });
    </script>

<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>

私はjavascript/jqueryにかなり慣れていないので、どんなアドバイスも大歓迎です。ありがとう。

4

2 に答える 2

1

ツイッターの場合、次のものが必要です。

twttr.widgets.load()

参照: https://dev.twitter.com/discussions/890

Facebookの場合、次のものが必要です。

FB.XFBML.parse();

参照: https://developers.facebook.com/docs/reference/javascript/FB.XFBML.parse/

これは、動的にレンダリングされたボタンの下で呼び出すことができます。

onAfterPageLoad は関数の呼び出しに使用されます。使用する場合は、次のように呼び出すように注意してください。

onAfterPageLoad: functionName

いいえ

onAfterPageLoad: functionName()

ただし、fb/twitter ボタンの問題については、ボタンのすぐ下にコードを配置する方がよいと思います。

于 2013-07-04T09:54:28.973 に答える
0

通常、ページの DOM の構築が完了した後に呼び出される関数内にすべてのコードを配置します。jQuery では、次のready関数を使用してこれを行います。

<script type="text/javascript">
    $(document).ready(function() {
        $('.infinite-container').waypoint('infinite', {
            container: 'auto',
            items: '.infinite-item',
            more: '.infinite-more-link',
            offset: 'bottom-in-view',
            loadingClass: 'infinite-loading',
            onBeforePageLoad: $.noop,
            onAfterPageLoad: $.noop
        });
    });
</script>

facebook と twitter はすでにこれを行っており、ウェブ上の誰でも使用できるように開発された他のほとんどのライブラリと同様に、通常は、HTML ソースが処理されるまで独自のスクリプトが開始されないようにするだけで済みます。初期要素ツリーを構築するのに十分なほど解析されます (「DOMContentLoaed」イベント)。

于 2013-06-02T12:54:21.120 に答える