jQuery。前置淡入(错误)

Posted

技术标签:

【中文标题】jQuery。前置淡入(错误)【英文标题】:jQuery. Prepend with fadeIn (error) 【发布时间】:2011-08-12 16:05:03 【问题描述】:

我使用了这里的代码jquery prepend + fadeIn

没有fadeIn 它可以工作

function updateResult(data) 
$('#test').prepend(
    html
);

fadeIn 仅在数据包含一个div 标签时有效,

$('#test').prepend(
    $(html).hide().fadeIn('slow')
);

否则 FireFox 会返回错误

uncaught exception: [Exception... "Could not convert javascript argument arg 0 [nsIDOMViewCSS.getComputedStyle]" nsresult: "0x80570009 (NS_ERROR_XPC_BAD_CONVERT_JS)" location: "JS frame :: http://code.jquery.com/jquery-latest.min.js :: <TOP_LEVEL> :: line 16" data: no]

如何重写这段代码?

更新。 在我的情况下,我已经通过这种方式解决了

data = data.replace(/(?:(?:\r\n|\r|\n)\s*)/gi, '');
$(data).hide().prependTo('#test').fadeIn('slow');

删除换行符后正常工作

【问题讨论】:

【参考方案1】:

试试这个:

$(html).hide().prependTo('#test').fadeIn('slow');

当元素未添加到 DOM 时,您可能无法使用动画方法。

【讨论】:

@Tuco:那是另外一回事,因为它适用于我的 Firefox:jsfiddle.net/fkling/duM7a 你也可以尝试更改调用的顺序:$(html).prependTo('#test').hide().fadeIn('slow'); 虽然这可能会导致闪烁。 也许它是 CSS 的东西,因为你的代码不使用它,我的使用它并且错误地有 nsIDOMViewCSS.getComputedStyle【参考方案2】:

在 Firefox 和 Chrome 中测试此代码。我没有用 AJAX 测试过:

HTML

<div id="be-images">
    <ul>
        <li>lista</li>
    </ul>
</div>
<button type="button">button</button>

JQUERY

$('button').click(function()
$('#be-images ul').prepend(
    $('<p>response</p>').hide().fadeIn(2000)
);
);

【讨论】:

【参考方案3】:

问题似乎在于换行符

读完这个话题Common sources of unterminated string literal 我得到了一个后盾。服务器返回 html 代码,其中每个标签位于新行上,因此当 \n 和标签之间的空格被删除时,此错误消失了。

这里是一个例子http://jsfiddle.net/gMWFD/

【讨论】:

以上是关于jQuery。前置淡入(错误)的主要内容,如果未能解决你的问题,请参考以下文章

jQuery 对象根本不前置

jQuery validate a checkbox is ticked - 有没有办法让错误消息附加 HTML 而不是前置?

D3.js 前置(类似于 jQuery 前置)

jQuery 前置图像

jQuery:使用延迟()和前置()

在 Jquery 中切换时如何更改前置文本?