1

我需要根据内容的高度设置左侧边栏的高度。这是我得到的错误

sidebarheight.js:1 Uncaught TypeError: Object # has no method 'ready'

我已经加载了 jquery,以及非常基本的几行 js:

$(document).ready(function() {
    $("#left").css({'height':($("#right").height()+'px')});
});

基本的html结构

<div id="left">sidebar content</div>
<div id="right">page content</div>

在此处查看工作副本:http: //keganquimby.com/122sk

4

3 回答 3

3

如果您使用 jQuery 而不是 $ 尝试此代码,它可以工作:

jQuery("#left").css({'height':jQuery("#right").height()+'px'});

好吧,至少在您提供的 URL 处,如果您执行此代码侧边栏高度,如果它们不相等,它们似乎会发生变化。

于 2012-10-22T17:42:09.663 回答
2

您的网站上有原型,并且它也在使用$.

尝试:

jQuery(document).ready(function($) { // This way you have no conflict with the $. In here $ refers to jQuery. All other places $ refers to document.getElementById (From prototype)
    $("#left").css({'height':($("#right").height()+'px')});
});

所以实际上发生的事情是:

$(document) -> document.getElementById(document)* -> null
->
null.ready -> "sidebarheight.js:1 Uncaught TypeError: Object # has no method 'ready'"

* Think $(...) 返回一个原型 GLOBAL.Element 集合

null是对象吗?

是的

alert(typeof null); // object

和.....

jQuery(document).ready(...可以短路jQuery(...

jQuery(function($) { // This way you have no conflict with the $. In here $ refers to jQuery all other places et's refers to document.getElementById (From prototype)
    $("#left").css({'height':($("#right").height()+'px')});
});
于 2012-10-22T17:43:34.130 回答
1

您的脚本引用有问题,请检查一下,因为在浏览器的控制台中我无法调用函数的 jquery 方法,请在控制台中尝试此操作并会出现错误:

var div = $('<div></div>')
undefined
div.fadeIn()
TypeError: Cannot call method 'fadeIn' of null

没有$引用 jQuery ether,因为它不包含在页面中或与另一个自由冲突。

于 2012-10-22T17:50:23.210 回答