使用jQuery . CSS()调用中的JS变量来指定CSS属性的名称
use JS variable inside jQuery .css() call to specify the name of CSS property
尝试做一些逻辑来确保工具提示显示在可见区域内。如何在.css()
中使用flot_position
变量?
//tooltip stuff
function showTooltip(x, y, contents) {
var window_width = $( window ).width();
if( x > (window_width - 60) )
{
var flot_position = 'right';
}
else
{
var flot_position = 'left';
}
$('<div id="tooltip">' + contents + '</div>').css({
position: 'absolute',
display: 'none',
top: y + 5,
flot_position: x + 15, // This doesn't set 'left' or 'right' to x+15
border: '1px solid #333',
padding: '4px',
color: '#fff',
'border-radius': '3px',
'background-color': '#333',
opacity: 0.80
}).appendTo("body").fadeIn(200);
}
您有两个选择:
-
拨打Amit回答中显示的
css(propertyName, propertyValue)
版本$('<div id="tooltip">' + contents + '</div>').css({ position: 'absolute', display: 'none', top: y + 5, border: '1px solid #333', padding: '4px', color: '#fff', 'border-radius': '3px', 'background-color': '#333', opacity: 0.80 }).css(flot_position, x + 15) .appendTo("body").fadeIn(200);
-
提前创建options对象,然后添加到它中,并使用它:
var cssOptions = { position: 'absolute', display: 'none', top: y + 5, border: '1px solid #333', padding: '4px', color: '#fff', 'border-radius': '3px', 'background-color': '#333', opacity: 0.80 }; cssOptions[flot_position] = x + 15; $('<div id="tooltip">' + contents + '</div>').css(cssOptions).appendTo("body").fadeIn(200);
第二个选项之所以有效,是因为尽管你不能在对象初始化项的属性初始化项左侧使用变量名,但可以在初始化项后面使用带括号的变量名来添加属性。在JavaScript中,您可以访问(获取/设置)对象上的属性,使用点符号和文字属性名称(obj.foo
),以及括号符号和字符串属性名称(obj["foo"]
)。在括号表示法中,字符串可以是任何表达式的结果,包括变量查找。
你可以这样做:
$('<div id="tooltip">' + contents + '</div>').css({
position: 'absolute',
display: 'none',
top: y + 5,
border: '1px solid #333',
padding: '4px',
color: '#fff',
'border-radius': '3px',
'background-color': '#333',
opacity: 0.80
}).css(flot_position, x + 15) // use chaining and use .css(key,value) overload
.appendTo("body").fadeIn(200);
相关文章:
- 谷歌图表-如何更改整个表的css属性
- 将css属性替换为变量
- 使用Jquery/Javascript替换CSS属性
- 如何使用JavaScript查找未定义的CSS属性的值
- 在jquerymobile中设置按钮css属性的动画
- JavaScript无法提取引号css属性
- 使用AngularJS动态更改css属性
- 使用javascript获取具有特定CSS属性的所有元素
- 将css属性添加到对象的集合中
- 取消img的css属性宽度和高度(不能使用“auto”)
- CSS属性更改侦听器
- 如何更改与Backbone集合中的模型相关联的几个元素的css属性
- 如何使用java脚本或jQuery基于相同的特定css属性对元素进行分组
- 如何在不链接/jquery的情况下使用方法应用css属性数组
- 在 javascript css 属性中使用变量
- 在jQuery中链接时CSS属性不起作用
- jQuery检查CSS宽度是否大于0,然后添加CSS属性
- 使用循环增加css属性值
- 更改类所选空输入的CSS属性
- 无法查找元素'手动加载CSS文件时的CSS属性