这是我的代码:
var lef=$(this).css("left");
var top=$(this).css("top");
alert(lef);
$(this).after("<div class='edit cancel' style='position:absolute;top:"+top+";left:"+lef+"'>Cancel</div>");
Run Code Online (Sandbox Code Playgroud)
现在声明var lef=$(this).css("left") + 150,似乎没有用.我想得到左边的属性并添加150像素
我怎样才能做到这一点 ?
谢谢.
may*_*ron 63
从jQuery 1.6开始,只需添加或减去当前值,即可轻松完成此操作.例如,要添加150px:
$(this).css("left", "+=150")
http://api.jquery.com/css/#css-properties
从jQuery 1.6开始,.css()接受类似于.animate()的相对值.相对值是以+ =或 - =开头的字符串,用于递增或递减当前值.例如,如果元素的填充左边是10px,则.css("padding-left","+ = 15")将导致25px的总填充左边.
thi*_*dot 44
这是最简单的方法(对于一般情况):
$(this).css('left', '+=150');
$(this).css('top', '-=100');
Run Code Online (Sandbox Code Playgroud)
http://api.jquery.com/css/#css-properties
从jQuery 1.6开始,
.css()接受类似的相对值.animate().相对值是以+=或-=以递增或递减当前值开头的字符串.例如,如果元素的填充左边是10px,.css( "padding-left", "+=15" )则会导致总填充左边为25px.
如果您需要"手动"(例如,作为创建新元素的一部分):
var left = parseInt($(this).css('left')) + 150;
var top = parseInt($(this).css('top'));
$(this).after('<div style="top: ' + top + 'px; left: ' + left + 'px; position: absolute">Cancel</div>');
Run Code Online (Sandbox Code Playgroud)
你需要使用parseInt因为.css('left')返回150px.然后你必须把它px作为内联样式的一部分.