【问题标题】:Passing variables with jquery css function doesn't work?使用 jquery css 函数传递变量不起作用?
【发布时间】:2018-08-29 06:08:50
【问题描述】:

我正在尝试在 IE10 中进行网格布局,并且非常接近解决方案(至少我是这么认为的)。我写了这个简短的脚本,它应该可以告诉 div 以哪种方式放置在网格中,因为显然 IE 无法自动填充。

var x = 1;
var y = 1;
jQuery(".grid .flex").each(function () {
        jQuery(this).css('-ms-grid-row', x);
        jQuery(this).css('-ms-grid-column', y);
        console.log(x);
        console.log(y);
        if (y >= 3) {
            y = 1;
            x++;
        }
        else {
            y++;
        }
});

div 的正确值在控制台上显示,但似乎 .css() 函数并没有完全理解它们只是数字。我没有按照此处显示的方式工作,但是当我将方法更改为 "-ms-grid-rows(或 -columns)" 脚本注入样式标签就好了。

我认为 jquery 假设变量是像素测量值,这可以解释为什么 "-ms-grid-rows" 有效并且 "-ms-grid-row"没有。

有没有办法解决这个问题?我可以明确地告诉变量只是数字吗?

对不起,如果这一切听起来有点混乱,我只是一名试图解决问题的实习生,因为高级开发人员正在休假。我也只是一个“网络开发”的菜鸟。

【问题讨论】:

  • jQuery(this).css({'-ms-grid-row': x,'-ms-grid-column': y});
  • 也许可以尝试jQuery(this).css('-ms-grid-row', String(x)); 甚至jQuery(this).css('-ms-grid-row', ''+x); 显式转换为字符串(老实说,我不能说这是否可行,这取决于 jQuery 在你传递它之后如何处理它,但如果它正在测试一个数字或一个字符串,然后基于它做不同的事情,它可能会有所帮助。
  • 我没有尝试过,但我认为它可能会成功:stackoverflow.com/questions/8462040/…

标签: jquery html css internet-explorer internet-explorer-10


【解决方案1】:

试试这个

 jQuery(this).css('-ms-grid-row', x.toString())

【讨论】:

  • 详细解释来自documentation"当数字作为值传递时,jQuery会将其转换为字符串并将 px 添加到该字符串的末尾。如果属性需要 px 以外的单位,请将值转换为字符串并在调用方法之前添加适当的单位。"
猜你喜欢
  • 2013-10-17
  • 1970-01-01
  • 2010-10-12
  • 1970-01-01
  • 2018-03-23
  • 1970-01-01
  • 1970-01-01
  • 2018-06-20
  • 1970-01-01
相关资源
最近更新 更多