更改jQuery选框文本和CSS /样式

时间:2015-11-13 12:35:04

标签: javascript jquery css marquee

我有div

<div id="rotatingText" class="marquee">
</div>

并在窗口加载

上初始化该div
jQuery('.marquee').marquee({
        duration: 3000,
        gap: 50,
        delayBeforeStart: 0,
        direction: 'left',
        duplicated: false
    });

现在我需要在ajax aftersuccess上更改该div的文本和css。我在ajax响应中获得了新的text和css属性。使用该文本和css,我将调用以下内容:

function setRotatingTextProperties( value, css, objectId )
{
    var object = document.getElementById( objectId );
    object.innerHTML = value;
    jQuery ( object ).attr( 'style', css );
}

在那个选框停止工作之后。 我认为jQuery选框在该div中设置了一些样式,我用它覆盖它:

jQuery ( object ).attr( 'style', css );

如果我只是将我的CSS添加到现有的

var currentCss = jQuery ( object ).attr( 'style');
jQuery ( object ).attr( 'style', currentCss + css );

多次更改我将最终得到大量无法使用的CSS。那个css会定期更改(每隔几秒钟)...... 任何建议和想法将不胜感激。 Thx提前。

1 个答案:

答案 0 :(得分:1)

实际上我认为你的问题不在你的CSS中:

jQuery ( object ).attr( 'style', css );

根据我的经验,jQuery marquee的问题在于更改文本。所以你的问题是:

object.innerHTML = value;

最佳解决方案(如果您可以更改该页面的HTML )是为其添加跨度:

<div id="rotatingText" class="marquee">
        <span id="rotatingTextSpan"></span>
    </div>

并更改跨文本和div的样式。类似的东西:

function setRotatingTextProperties( value, css )
{
        // change span text value
        $( '#predefineImageRotatingTextSpan' ).text( value );
        // change css value on div
        $( '#predefineImageRotatingText' ).attr( 'style', css );
}

如果您因任何原因无法更改该网页的HTML ,您可以随时在window.load或document.ready上插入span值,但 BEFORE 你用

之类的东西初始化字幕
 $( '#predefineImageRotatingTextSpan' ).html( '<span id="predefineImageRotatingTextSpan"></span>' );

然后使用上面的功能。

修改

如果您在div中有一些预定义文本,请将其值复制到该div:

var $object = $( '#predefineImageRotatingTextSpan' )
var initialText = $object.text()
$object.html( '<span id="predefineImageRotatingTextSpan"> ' + initialText  + '</span>' );