jQuery.css()未应用于元素
jQuery.css() not applying to element
最近我一直在尝试深入研究高级(对我来说很好)编程概念,如抽象和函数编程等。这让我开始尝试w/anon函数。
我遇到的情况是,动态生成的值没有通过使用.css({})
的匿名函数应用于目标元素。我认为这与我的研究中带有宾语文字的错误翻译有关。
Chrome和FF控制台都没有出现任何错误,所以我在这里询问专家。
我做了一把小提琴,但效果不太好。我只是要链接开发站点上涉及的资源。
这是我的开发网站,我用来玩/实验和尝试新事物。
http://dev/kenstowell.net
js文件:http://dev.kenstowell.net/scripts/scripts.js
当然,一切都可以通过调试器控制台找到。
好的,下面是预期行为:
-
在
(window).load
上,调用initDOM()
。$(window).load(function(){ //Style Initial Dom Elements initDOM(); });
-
在
initDom()
内部,我试图通过调用setElemMargin()
并为其提供适当的参数来设置相对于父容器的上边距。setElemMarg("#main-content-one", "#intro-text", "#intro-text", "margin-top");
-
setElemMarg()
获取所提供参数的高度,并使用它们来计算要在.css()
映射中设置的边距。var setElemMarg = function(elem1, elem2, elemTrgt, propName){
var margH = (getH(elem1) - getH(elem2)) / 2;
$(elemTrgt).css({propName : margH});
console.log(elem1, elem2, elemTrgt, propName, margH); }var getH = function(elem){ return $(elem).height(); console.log($(elem).height()); }
-
将计算出的裕度应用于CCD_ 12。(来自上述方法)
$(elemTrgt).css({propName : margH});
感谢所有看过这个的人。请随意给我一些建设性的批评。也许是一些你希望在你还是一个初出茅庐的开发人员时就拥有的。:)
Ken
问题存在于setElemMarg()
函数中:
var setElemMarg = function(elem1, elem2, elemTrgt, propName) {
var margH = (getH(elem1) - getH(elem2)) / 2;
$(elemTrgt).css({propName : margH}); // <-- Here.
console.log(elem1, elem2, elemTrgt, propName, margH);
}
在对css()
的调用中使用的文本对象语法导致jQuery尝试更新propName
样式的属性,而不是名称存储在propName
中的属性。
你可以使用括号符号来解决这个问题:
var styleProps = {};
styleProps[propName] = margH;
$(elemTrgt).css(styleProps);
或者简单地调用css()的两个参数形式:
$(elemTrgt).css(propName, margH);
为什么不尝试使用$(element).attr('style','css_values');
?
由于setElemMarg是在window.load事件的initDOM中调用的,因此不能保证jquery/dom准备就绪。您需要在文档加载事件中调用此函数
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 如何使用javascript检查事件是否应用于元素
- 将随机类应用于元素
- 循环使用CSS规则遍历数组,并将它们应用于元素
- jQuery将侦听器应用于元素集
- 如何在 Javascript 中使用元素的 CSS 路径将 CSS 属性应用于元素
- 直接应用于元素的样式在移入 时将丢失.CSS 文件
- 将预定义的颜色序列应用于元素的动态列表
- Jquery toggleClass应用于元素时不起作用
- JavaScript获取当前应用于元素的样式列表
- 如何返回外部样式表类应用于元素的所有CSS属性(不获取计算样式!)
- JQuery选择器:当未单击某个子项时,将规则应用于元素
- jQuery.css()未应用于元素
- 如何手动将特定样式表中的样式应用于元素
- 如何通过属性“onclick”将jQuery函数.one()应用于元素
- 如果用户使用带有锚/哈希的链接访问网站,我如何将样式应用于元素
- 使用jQuery将新的css应用于元素,如何添加转换
- 将链接模式应用于元素及其子元素的创建
- 将jQuery侦听器应用于元素'的孩子
- 复制应用于元素的 CSS 样式