Получение равных по высоте столбцов jQuery Plugin и Disqus для хорошей игры - PullRequest
2 голосов
/ 02 мая 2011

Я решил, что решение JS ( Плагин EqualHeights ) для столбцов равной высоты, вероятно, будет лучшим в этом случае, но у меня проблемы с Disqus.Как вы, наверное, уже знаете, Disqus загружается асинхронно.Это замечательно и все (ну, не совсем), но поскольку комментарии загружаются после всего остального, включая плагин, они обрезаются.Я не могу понять, как обойти это.Я на самом деле попробовал CSS-хак, чтобы получить столбцы одинаковой высоты, надеясь, что он не будет конфликтовать с Disqus, но мне тоже не повезло.Вы всегда неоценимы здесь.

Код Disqus:

    <script type="text/javascript">var disqus_url = "{Permalink}"; var disqus_title ="{block:PostTitle}{PostTitle}{/block:PostTitle}";</script>{block:Permalink}<div id="disqus_thread"></div>
<script type="text/javascript">
  /**
    * var disqus_identifier; [Optional but recommended: Define a unique identifier (e.g. post id or slug) for this thread] 
    */
  (function() {
   var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
   dsq.src = 'http://escapology.disqus.com/embed.js';
   (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
  })();
</script>
<noscript>Please enable JavaScript to view <a href="http://disqus.com/?ref_noscript=escapology">comments.</a></noscript>
{/block:Permalink}<script type="text/javascript">
var disqus_shortname = 'escapology';
(function () {
  var s = document.createElement('script'); s.async = true;
  s.src = 'http://escapology.disqus.com/count.js';
  (document.getElementsByTagName('HEAD')[0] || document.getElementsByTagName('BODY')[0]).appendChild(s);
}());
</script>

1 Ответ

0 голосов
/ 02 мая 2011

Вы можете отложить выполнение плагина до загрузки disqus. Вот как вы могли бы сделать это для одной из ваших дискуссий. Сделайте это для каждого:

(function() {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = 'http://escapology.disqus.com/embed.js';
var done=false;
dsq.onload=dsq.onreadystatechange = function(){
      if ( !done && (!this.readyState || this.readyState == 'loaded' || this.readyState == 'complete') ) {
        done=true;
        //CALL YOUR EQUAL HEIGHTS JQUERY CODE HERE
        dsq.onload = dsq.onreadystatechange = null;
      }
    };
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
...