更改 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>' );
我有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>' );