更改 jQuery 选取框文本和 css/style

Changing jQuery marquee text and css/style

我有div

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

div 上的选取框在 window 加载时初始化

jQuery('.marquee').marquee({
        duration: 3000,
        gap: 50,
        delayBeforeStart: 0,
        direction: 'left',
        duplicated: false
    });

现在我需要在成功后 ajax 上更改 div 的文本和 css。我在 ajax 响应中获得了新文本和 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 会定期更改(每隔几秒)... 任何建议和想法将不胜感激。 提前致谢。

其实我认为你的问题不在你的css和:

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

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

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 或 [=41] 上插入跨度值=],但是 BEFORE 你用

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

然后使用上面的函数。

编辑:

如果您的 div 开头有一些预定义文本,只需将其值复制到 div:

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