2

わかりましたので、2 つの div を含む親 div があります。親 div は、コンテンツによって決定される、最も高い子 div と同じ高さになります。ただし、コンテンツに関係なく、2 つの子 div を同じ動的な高さにしたいと考えています。したがって、私はそれを JavaScript に解決しました。ここに私が持っているものがあります:

<!--- Make main div's same height -->

<script type="text/javascript">

$(window).bind("load", function() {
   setDivHeight() {
      var left = $('#primary');
      var right = $('#secondary');

      var maxHeight = Math.max(left.height(), right.height());

      left.height(maxHeight);
      right.height(maxHeight);
   }
});

</script>

ただし、実行しようとすると、コンソールに次のメッセージが表示されます。

Uncaught TypeError: Property '$' of object [object Object] is not a function

私はこれを約4時間掘り下げてきましたが、希望をあきらめました...

誰が私が間違っているのか教えてもらえますか???

4

1 に答える 1

8

そのコードの上のページに jQuery が含まれていないか、含まれていても何かが$シンボルを乗っ取っているようです。

次のように、コードの前に jQuery がロードされていることを確認します (これは、使用できるリンクの 1 つにすぎません)。

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>

そして/またはそれを持っているが、他の何かが$シンボルを使用している場合は、コードでこれを行うことができます:

(function($) {
    $(window).bind("load", function() {
    // v----- Side note: This looks like a syntax error
       setDivHeight() {
          var left = $('#primary');
          var right = $('#secondary');

          var maxHeight = Math.max(left.height(), right.height());

          left.height(maxHeight);
          right.height(maxHeight);
       }
    });
})(jQuery);

それはjQueryシンボルを使用し、それを引数として関数に渡し$ます。がその関数の外側にある場合でも、その関数では になり$ます。jQuery


補足 1: コードに構文エラーが含まれています。おそらくあなたは次のことを意味しました:

(function($) {
    $(window).bind("load", function() {
        var left = $('#primary');
        var right = $('#secondary');

        var maxHeight = Math.max(left.height(), right.height());

        left.height(maxHeight);
        right.height(maxHeight);
    });
})(jQuery);

補足 2: ウィンドウloadイベントは、すべての画像が読み込まれた後、読み込みプロセスの非常に遅い段階で発生します。それはあなたが望むものかもしれません (たとえば、div の高さが画像によって部分的に決定される場合)、そうでない場合はready代わりに (この場合はそのショートカットの 1 つを使用して)使用することをお勧めします。

jQuery(function($) {
    var left = $('#primary');
    var right = $('#secondary');

    var maxHeight = Math.max(left.height(), right.height());
    left.height(maxHeight);
    right.height(maxHeight);
});

繰り返しになりますが、何らかの理由で画像を待っている可能性があります。

于 2013-07-14T07:47:36.623 に答える