【问题标题】:Jquery .css not working the first time it is calledJquery .css 在第一次被调用时不工作
【发布时间】:2013-10-08 09:12:28
【问题描述】:

我有一个全屏类(显然)它可以将任何面板添加到全屏。 scss如下:

.fullscreen-div {
  top: $navbar_height;
  right: 0;
  bottom: 0;
  position: fixed;
  z-index: 5;
  padding: 0px 10px;
  background: white;
}

每当打开其他特定面板时,我希望全屏更小一点,以便其他面板也可以适应。我尝试使用以下 javascript 来做到这一点:

function setWindowDimensions(){
    ...
    //Fullscreen width
    var fullscreen = $('.fullscreen-div');
    if(leftPanelPresence){
        fullscreen.css("left", leftPanelWidth);
    }else{
        fullscreen.css("left", 0);
    }
}

此代码在左侧面板可见时正确运行,但是“左侧”样式属性全屏 div 仅在我运行此代码两次时才会更改。第一次它只是保持默认左侧:0; .

我检查了是否正确选择了 jQuery 元素,id leftPanelPresence 是否为 true,以及 leftPanelWidth 是否设置正确,这一切似乎都是如此。

全屏按钮执行以下操作(咖啡脚本):

$(document).on 'click', '.evidence-header h4 i.icon-resize-full', ->
    evidenceView.addClass('fullscreen-div')
    setWindowDimensions()

leftPanelWidth 默认设置为 200。

.css jQuery 行已运行,但我只是没有看到我的浏览器中反映的更改。当我在浏览器中检查 css 时,它保持为 0。

【问题讨论】:

  • leftPanelWidth的值是多少?
  • 请向我们展示您的更多代码,例如您如何获取变量的值以及如何打开面板
  • 你的css文件中真的有$navbar_height吗? (并且类名前没有.
  • 有一个 .在全屏 div 前面,我在复制时错过了它。 Saas 允许定义诸如 $navbar_height 之类的变量,所以是的,$navbar_height 与我的 scss 文件中的完全一样。
  • 如果第二次工作,“leftPanelPresence”变量有问题。有了这些代码,我不能说更多了。

标签: javascript jquery css


【解决方案1】:

.css 的参数必须是一个字符串,就像你在 .css 文件中写的那样

你需要在leftPanelWidth末尾添加'px'。

它适用于您的默认值,因为 0 被解释为空值并且在没有 'px' 的情况下工作

【讨论】:

  • 不,你没有。 jQuery 非常友好,它会为你做类似的事情 :) (它总是假设 px,而不是另一个单位。)
  • 我已经尝试将它作为一个带 px 和不带 px 的字符串。这没什么区别
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-13
  • 2018-01-05
相关资源
最近更新 更多