$(window).bind(“load”,function(){}事件

时间:2013-07-14 07:45:49

标签: javascript css html

好的,所以我有一个包含两个div的父div。父div将自然地与最高的孩子div一样高,由内容决定。但是,无论内容如何,​​我希望两个子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个小时了,我已经放弃了希望......

谁能告诉我我做错了什么?

1 个答案:

答案 0 :(得分:5)

听起来您没有在该代码上方的页面中包含jQuery,或者您确实已经接管了$符号。

确保在代码之前加载jQuery,就像这样(这只是你可能使用的一个链接):

<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代替(在这种情况下,使用其中一个快捷方式),它发生得更早:

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

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

但是,也许你正在等待图像是有原因的。