2016-12-25 74 views
6

好了,所以我做了,我用它来改变一个div的边境小脚本,但它似乎没有工作jQuery的CSS边界

这是我的代码

function changeBorderType(px, rr, gg, bb) { 
     $("#colorBox").css({"border": px+"px "+ getBorderType() +" rgb("+ rr +","+ gg +","+ bb +");"}); 
     console.log("border: " + px+"px "+ getBorderType() +" rgb("+ rr +","+ gg +","+ bb +");"); 
    } 

输出荫越来越从console.log无误

border:1px solid rgb(231,212,164);

但在页面上根本没有任何效果,边框不会改变,或者其他任何东西都是如此。

我也试过检查元素,看看是否有任何变化左右,但它似乎还有是不是在所有

编辑没有变化:

只是增加了,这是我目前的CSS(默认一个)

#colorBox { 
    width: 40%; 
    height: 80%; 
    background-color: rgb(0,0,0); 
    display: inline-block; 
    margin-top: 20px; 
    border: 1px solid rgb(136,104,121); 
} 
+1

你能提供一个完整的例子吗?你确定你在DOM中有这个元素吗? – Dekel

+0

下面是一个示例小提琴,虽然它说undefined $,但这不是我自己的网页上的情况,可能是因为我在那里粘贴了错误的东西 https://jsfiddle.net/x1dtf4og/ –

+3

以下是对您的更新jsfiddle:https://jsfiddle.net/x1dtf4og/1/你有jQuery丢失,你仍然在最后有分号(';'),并且''border'键有额外的空间。 – Dekel

回答

3

这里是修复,根据您的jsfiddle:解决

var pixelsSet = 5; 
 
var red = 10; 
 
var green = 122; 
 
var blue = 155; 
 

 
changeBorderType(pixelsSet, red, green, blue); 
 

 
function changeBorderType(px, rr, gg, bb) { 
 
    $("#box").css({"border": px+"px " +" solid "+ "rgb("+ rr +","+ gg +","+ bb +")"}); 
 
    console.log("border: " + px+"px "+" solid "+" rgb("+ rr +","+ gg +","+ bb +")"); 
 
}
#box { 
 
    width: 50px; 
 
    height: 50px; 
 
    background-color: red; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="box"> 
 

 
</div>

问题:
1.有在边界的值的末尾一个额外的semicolor。
2.在border密钥(它是border)后有一个额外的空间。

+0

感谢队友,上帝保佑你,圣诞快乐! –

2

分号(;)不是有效的css值。你在你的最后一个值中有哪些,

1px solid rgb(231,212,164);

所以,当前的代码,

"border": px+"px "+ getBorderType() +" rgb("+ rr +","+ gg +","+ bb +");" 

更新它,

"border": px+"px "+ getBorderType() +" rgb("+ rr +","+ gg +","+ bb +")" 

样品,

$(function() { 
 
    var style1 = "1px solid rgb(231,212,164);"; 
 
    var style2 = "1px solid rgb(231,212,164)"; 
 

 
    $('#previousColorBox').css({ 
 
    'border': style1 
 
    }); 
 

 
    $('#colorBox').css({ 
 
    'border': style2 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div id="previousColorBox"> 
 
    My Previous Color Box 
 
</div> 
 

 
<div id="colorBox"> 
 
    My Color Box 
 
</div>

+0

即使没有它,它仍然是相同的 –

+0

@TomislavNikolic从你编辑的问题来看,你实际上可以只改变'border-color'。无论如何,尝试检查我的示例,如果有帮助.. – choz

+0

得到我的投票在这里无论如何:) – Dekel