Jquery 为什么这个简单的if/else语句不起作用?

Jquery 为什么这个简单的if/else语句不起作用?,jquery,coffeescript,Jquery,Coffeescript,我在想为什么这不管用 我有两个不同的元素,一个位于页面顶部,另一个位于页面的下半部分 我添加了一堆控制台日志,以找出为什么应用了错误的类(总是“top”,而不是bottom) 案例1日志: .top half window: 314 top position: 172 案例2日志: .top half window: 314 top position: 389 在第二种情况下,类应该是.bottom,但由于某种原因,这两个数字的简单比较不起作用,我不知道为什么 我的代码: enable_

我在想为什么这不管用

我有两个不同的元素,一个位于页面顶部,另一个位于页面的下半部分

我添加了一堆控制台日志,以找出为什么应用了错误的类(总是“top”,而不是bottom)

案例1日志:

.top
half window: 314  top position: 172
案例2日志:

.top
half window: 314  top position: 389
在第二种情况下,类应该是.bottom,但由于某种原因,这两个数字的简单比较不起作用,我不知道为什么

我的代码:

enable_dropdown = (el) ->
  el.closest('.shareable').addClass('active')

  windowheight = $(document).height() / 2
  position = el.offset()
  if position >= windowheight
    el.find('.panel').addClass 'bottom'
    console.log '.bottom'
  else
    el.find('.panel').addClass 'top'
    console.log '.top'
  console.log 'half window: ' + windowheight + '  top position: ' + position.top

您必须将
窗口高度
位置.顶部
,而不是
位置
(就像您的
控制台.log()
语句一样)。

这是什么魔法!您的意思是比较
位置.顶部
窗口高度
?看起来您正在将一个对象与if语句中的整数进行比较。
el.offset()==={top:10,left:10}
等@crclayton谢谢,解决了这个问题-完全没有解决这个问题
如果position.top>=windowheight
非常欢迎您。