我正在尝试相对于表单标题的位置显示我的动画控件。
<div class="page-header container">
在jQuery中,我试图用这个函数显示消息:
function showMessage(stype, title, message) {
var position = $('.page-header container').offset.top;
if (typeof position == 'undefined') {
position = '50px';
alert(position);
} else {
position = "'" + position + "px'";
}
$('.' + stype).animate({ top: position }, 500);
}
每次我警告('50px')。
由于我使用CLASS而不是ID来识别,我想我会尝试阅读课程'.page-header container'
中所有项目的集合:
function showMessage(stype, title, message) {
var items = $('.page-header container');
var position = items[0].offset.top;
if (typeof position == 'undefined') {
position = '50px';
alert(position);
} else {
position = "'" + position + "px'";
}
$('.' + stype).animate({ top: position }, 500);
}
这一次,似乎items
未定义。
我忽略了什么?
答案 0 :(得分:7)
这一行有两个问题:
var position = $('.page-header container').offset.top;
首先,它正在中寻找带有container
标记的元素,该元素具有类page-header
。空格表示descendant combinator。其次,offset
是一个函数,而不是属性。
我认为你的意思是:
var position = $('.page-header.container').offset().top;
查找包含两个类page-header
和 container
的元素,并调用offset
(因为它是一个函数),然后使用它返回的对象的top
属性。