$(janela).bind ("carga", Função () {} evento

Tenho um div que contém dois divs. O div pai será naturalmente tão alto quanto o div criança mais alto, ditado pelo conteúdo. No entanto, quero que as duas divs crianças sejam a mesma altura dinâmica, independentemente do conteúdo. Assim, resolvi fazê-lo JavaScript. Eis o que tenho:
<!--- 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>
No entanto, quando tento executá-lo, recebo esta mensagem no meu console:

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

Estou a investigar isto há cerca de 4 horas e desisti. esperar...

Alguém me pode dizer o que estou a fazer de errado???

Author: jparnell8839, 2013-07-14

1 answers

Parece que você não tem jQuery incluído na página acima desse código, ou você faz, mas algo assumiu o símbolo $.

Certifique-se de que o jQuery é carregado antes do Código, assim (este é apenas um link que você pode usar):

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

E / ou se você tem isso, mas algo mais está usando o símbolo $, você pode fazer isso com o seu código:

(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);

Que usa o símbolo jQuery, passando-o para uma função como argumento $. Mesmo que $ seja alguma coisa caso contrário fora essa função, dentro ele, ele será jQuery.


Nota 1: o seu código contém um erro de sintaxe. Talvez quisesse dizer:
(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);

Nota lateral 2: o evento da janela load acontece muito tarde no processo de carga, depois de todas as imagens serem carregadas. Isso pode ser o que você quer (por exemplo, se a altura das divs é parcialmente ditada por imagens), mas se não você pode querer usar ready Em vez disso (neste caso, usando um de seu atalhos), como acontece mais cedo:

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

    var maxHeight = Math.max(left.height(), right.height());
    left.height(maxHeight);
    right.height(maxHeight);
});
Mais uma vez, talvez estejas à espera das imagens por uma razão.
 5
Author: T.J. Crowder, 2013-07-14 07:54:20