2010-04-28 55 views
1

您能否向我解释为什么下面的代码在Chrome和Safari中无法使用,但只能在Firefox中使用?jQuery:颜色变化不适用于Chrome和Safari

if ($(this).css("color") == "Fuchsia"){ $(this).css("color","#000000"); } 

这是链接:

http://www.sanstitre.ch/drupal/portfolio?tid[0]=38

如果滚动向下和向上,你会看到“永恒之旅”变成紫色和黑色再次,因为它不再被选中。 (使用FIrefox)

使用Chrome和Safari时,它仍然是黑色。

+1

尝试拼写它小写:紫红色。 – powtac 2010-04-28 10:23:20

+0

我认为它与滚动有关。尝试改变其他事件的颜色... – powtac 2010-04-28 10:26:40

+0

@powtac发布您的答案在下面,我们可以upvote它。 (加上作者可以接受它) – 2010-04-28 10:39:10

回答

0

尝试拼写小写:紫红色。

0

我会跟踪什么返回$(this).color()看到,但我会说主要问题是,铬/ safari都返回hex code,所以与string比较不起作用。

尝试将其与#FF00FF进行比较。

0

试试这个

if ($(*).css("color") == "fuchsia"){ $(this).css("color","#000000"); } 
+0

我会避免这一点。循环浏览页面上的每个元素并不是一个好主意 – iBiryukov 2010-04-28 10:31:40

0

function toggleNotesStyle(obj) { 

    var currentColor = rgb2hex(jQuery(obj).css('color')); 

    if (currentColor == '#000000') { // if black, change to red 
     jQuery(obj).css('color', '#ff0000'); 
    } 
    else { // if a different color (red in our case), change to black 
     jQuery(obj).css('color', '#000000'); 
    } 
} 

function rgb2hex(rgb) { 
    if (/^#[0-9a-f]{3}([0-9a-f]{3})?$/i.test(rgb)) { 
     // matches on IE hex color (ie: #000000) .. and no pun intended for "ie" 
     return rgb; 
    } 
    // changes "rgb(#,#,#)' to hex for Mozilla, Chrome and Safari 
     rgb = rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/); 
    // found this on another site, but don't know why it's different 
    //rgb = rgb.match(/^rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d+))?\)$/); 
    return "#" + 
     ("0" + parseInt(rgb[1], 10).toString(16)).slice(-2) + 
     ("0" + parseInt(rgb[2], 10).toString(16)).slice(-2) + 
     ("0" + parseInt(rgb[3], 10).toString(16)).slice(-2); 
} 

var timer; 
toggleTimer(); 

function toggleTimer() 
{ 
    if (document.getElementById("<%=fullDataEntryNotes.ClientID%>")) { 
     var fullDataEntryNotes = document.getElementById("<%=fullDataEntryNotes.ClientID %>"); 
     toggleNotesStyle(fullDataEntryNotes); 
    } 

    timer = window.setTimeout('toggleTimer()', 750); 
} 

的HTML代码打破我的职位,所以我会解释的HTML是什么在这里。制作一个div标签,并在其中放置文本。然后设定div标签的样式,使其初始具有#000000(黑色)的style.color属性。然后每750毫秒,它会从黑色切换到红色,从黑色切换到红色等。

相关问题