0

I am trying to apply a jquery scrollbar to a div that is populated with content from another local jquery call. My problem is that IE does not seem to wait for the content in the div to load, before calling the script for the scrollbar...hence, the scrollbar does not work correctly.

  • All other browsers work fine, IE (ver. 8, 9 ) is the only one not working.
  • when the div contains static html code, IE works fine
  • the call to the scroll function is inside a window.load

The strange thing: IF i stick an alert() call before calling the scroll code, it will work.

I have tried adding a setTimeout() function, but that did not work.

The code looks like this

<head>
  <script>
      $(document).ready(function() {
          // ajax call to populate scrollable div with html content
       });
  </script>
</head>
<body>

    <div class="scrollableDiv">

       // content populated by script call above

    </div>

    <...... lots more html here .....>
    <!-- very bottom of page -->
    <script>
       $(window).load(function(){
          // alert ("IF I ADD THIS ALERT, EVERYTHING WORKS FINE IN IE");
         $('.scrollableDiv').ClassyScroll();

       });
    </script>
  </body>

Any ideas???

4

2 に答える 2

1

$(document).ready(function() {

ドキュメントの準備が整うと、div のコンテンツが入力されます。

$(window).load(function(){

ClassyScrollページが完全に読み込まれるたびに、関数が呼び出されます。

div に入力するために何をしているのかを知る必要がありますが、おそらく非同期であり、load イベントの発生をブロックしません。

とにかく、同じ機能のために両方を使用することは通常悪い考えです。私がお勧めするのは、ClassyScrollあなたのdivが移入されていることを知っているときはいつでも呼び出すことです(同期の場合は直後、非同期の場合はコールバックで)。

何かのようなもの :

$(document).ready(function() {
    // call function to populate scrollable div with html content
    populateDivWhatever();
    // call your classyscroll function
    $('.scrollableDiv').ClassyScroll();
});
于 2013-10-22T15:36:48.733 に答える