Mam stół HTML

    <table class="mytable">
       <tr>
           <td>
            test value
           </td>
       <tr>
    </table>

Podczas ładowania strony dynamicznie dodawanie TD

        $(".mytable tr:first").append("<td id='scheduledInMyLearnStatus' class='changeFieldValue' style='background-color:#FE2E2E;'></td>");

Teraz na kliknięcie tego konkretnego TD Chcę porównać, czy jego ma kolor tła = # fe2e2e lub ma cokolwiek innego

    $('td').live('click', function() {

       //compare here 
    });
1
monda 3 sierpień 2012, 10:37

3 odpowiedzi

Najlepsza odpowiedź

Można użyć metody jQuery css(), pamiętaj, że live() jest przestarzały, możesz użyć on zamiast:

$(document).on('click', '#scheduledInMyLearnStatus', function(){ // or $('.mytable').on
    if($(this).css('background-color') == "rgb(254, 46, 46)") {
      // do something
    }
})

PRÓBNY

4
undefined 3 sierpień 2012, 06:42

Wierzę, że możesz użyć tylko jednego selektora:

$(document).on("click", ".changeFieldValue[style~='background-color']", function () {
  // do something
});

A jeśli potrzebujesz określonego koloru, "kolor tła: RGB (200, 122, 122)" zamiast tylko "kolor tła".

1
Vladislav Qulin 3 sierpień 2012, 06:46

Możesz sprawić, że Twoja funkcja wygląda

$ ('. Mytable TD'). Live ("kliknij", funkcja () {

        bgColor= hexc($(this).css("background-color"));
        if(bgColor.toUpperCase() == "#FE2E2E")
        {
            alert("Background color matched to '#FE2E2E'")
        }
        else
        {
            alert("Background color don't  matched to '#FE2E2E'")
        }

    });   

I definicja będzie

Funkcja HEXC (Colorval)

{
    var color = "";
    var parts = colorval.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
    if(parts != null )
    {
        parts[0] = "#";
        for (var i = 1; i <= 3; ++i) 
        {
            parts[i] = parseInt(parts[i]).toString(16);
            if (parts[i].length == 1) parts[i] = '0' + parts[i];
        }
        color = parts.join('');
    }
    return color;
}
1
Champ 3 sierpień 2012, 07:08