Pregunta

En SharePoint 2007, utilizando tipos de contenido y edición de NewForm.aspx con jQuery, logré personalizar el aspecto de un nuevo elemento, agregando una identidad de color de gradiente para cada tipo de contenido. También quiero continuar con ese aspecto en las vistas. Para la vista "Todos los elementos", agregué una parte web del editor de contenido en la que codifiqué los estilos y el script jQuery. Me gustaría poder mostrar colores de gradiente en la vista y lo he logrado en Firefox, pero IE8 parece resistente.

En la parte web del editor de contenido tengo un código que funciona en Forefox pero no en IE8. El problema parece ser que IE8 no maneja la declaración de jQuery: $ Text.parent ();.

Pregunta: ¿Alguien sabe de una forma de agregar una clase a un padre sin usar obj.parent ()? ¿O hay una solución de IE para este problema?

Por cierto, esta declaración jQuery funciona en IE8: $ Text.parent (). CSS ("Color de fondo", "#FF0000");, sin embargo, es sin las cualidades de gradiente.

Gracias por adelantado,

-Arnold

Código:

<style type="text/css">
.formRedBackground
{
    background: white;
    background: -moz-linear-gradient(top, white, #FF0000);
    background: -webkit-gradient(linear, left top, left bottom, from(white), to  (#FF0000));
    filter:progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=135, Color='#000000')
    filter: progid:DXImageTransform.Microsoft.Gradient(StartColorStr='white', EndColorStr='#FF0000', gradientType='0');
    color:#FFFFFF;
}

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script> 

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.6/jquery-ui.js"></script>

<script type="text/javascript">
$(document).ready(function(){
$Text = $("td .ms-vb2:contains('Red')");
var myelement = $Text.parent();
myelement.addClass('formRedBackground');

});

¿Fue útil?

Solución

Encontré la respuesta a mi pregunta. Modifiqué la jQuery para ejecutar una función en el padre del TD. También terminé cambiando mi requisito para que solo los dos primeros elementos TD en un TR estén coloreados.

Aquí está el código en caso de que ayude a alguien más:

<script type="text/javascript">
$(document).ready(function(){

$Text = $("td .ms-vb2:contains('Beige')");
$Text.parent().each(function() { $("td:lt(2)", this).addClass("formBeigeBackground");});

$Text = $("td .ms-vb2:contains('Black')");
$Text.parent().each(function() { $("td:lt(2)", this).addClass("formBlackBackground");});

$Text = $("td .ms-vb2:contains('Lavender')");
$Text.parent().each(function() { $("td:lt(2)", this).addClass("formLavenderBackground");});

$Text = $("td .ms-vb2:contains('Pink')");
$Text.parent().each(function() { $("td:lt(2)", this).addClass("formPinkBackground");});

$Text = $("td .ms-vb2:contains('Red')");
$Text.parent().each(function() { $("td:lt(2)", this).addClass("formRedBackground");});

});
</script>

Este es un sitio genial,

-Arnold

Licenciado bajo: CC-BY-SA con atribución
scroll top