Jquery在firefox和chrome上表现不同

时间:2014-01-10 00:33:25

标签: javascript jquery

关注人员,我有这些命令可以获得每个div的边框颜色和背景:

 var data_id =  $('#Topo').css('border-color') + $('#Topo').css('background-color') + $('#senha_12').css('border-color') + $('#senha_12:hover').css('border-color') + $('#senha_12').css('background-color');

$.ajax({
      type: "POST",
      url: "funcoes/a-php/ler/ler_config.php",
      data: data_id,
      cache: false,
      success: function(data_o){
        alert(data_o);
      }
  });

以下是通过jQuery捕获的这些div,如下所示:

<style>
#senha_12{
    margin-left:15px;
    float:left;
    margin-top:3px;
    width:72px;
    height:68px;
    background:#FFFFFF;
    border:2px solid #A3C2FF;
    border-radius:10px; 
    cursor:pointer;
}
#senha_12:hover{
    cursor:pointer;
    border:2px solid #FF6600;
    float:left;
}
</style>

<div id="Topo" style="border-radius:10px; width:150px; margin-left:-5px; margin-top:30px; text-align:center;  height:80px; float:left;  background:url(background.png); border:2px solid #060606;">
<div id="senha_12">
<img src="design/imagens/2.fw.png" style="margin-top:10px" width="52" height="48">
</div>
<img src="design/imagens/1.fw.png" style="margin-top:10px" width="32" height="32">
</div>

在这种情况下,我让用户可以自由地修改每个div的颜色,使用打开具有各种颜色的框的命令,因此选择的颜色被捕获rgb并且jQuery执行div以更新自己的颜色用户选择了(但这不是重点,所以我表达了这个以避免这些问题'但是因为你想要这个?')

在谷歌浏览器中,这些颜色是通过JavaScript处理的,并且在PHP中以PHP形式投放,它采用每个参数并放入一个数组,结果显示如下:

array

已经在Firefox上我不知道实际发生了什么,但有些来自空白字段(甚至通过上面的命令编辑颜色):

array

事后看来,Firefox中的这个错误似乎不是PHP中的错误参数,我认为这与Firefox的问题相同......相信在Firefox中有任何例外可以防止使用div的颜色。 我想知道为什么会这样,也是这个问题的可能解决方案。

1 个答案:

答案 0 :(得分:1)

当您致电window.getComputedStyle(element)时,jQuery会使用css

属性border-color并不存在,但它是border-[left|top|right|bottom]-color的简写。

如果使用window.getComputedStyle(element),则

FireFox does not return a value of any of these shorthand。如果它所代表的所有属性具有相同的值,WebKit(afaik)仅返回速记的值。

如果您确定,所有方面的颜色都相同,那么您可以考虑改为调用$('#Topo').css('border-left-color')