jQuery 1.5.2 detach =错误

时间:2011-04-28 13:40:39

标签: jquery

我遇到了jQuery detach()函数的问题。请参阅Example page。 chrome会抛出此错误:

Uncaught TypeError: Object [object Object] has no method 'replaced'。 和Firefox / Firebug这一个: 'c.replace不是一个函数' 在jQuery文件

HTML代码:

<nav class="menu center">
            <ul>
                <li><a href="#" data-link="home">Home</a></li>
                <li><a href="#">1</a></li>
                <li><a href="#">3</a></li>
                <li><a href="#">5</a></li>
                <li><a href="#">6</a></li>
                <li><a href="#">7</a></li>
                <li><a href="#">X</a></li>
                <li><a href="#">Z4</a></li>

            </ul>
        </nav>

<div  id="RTMPClient"><p>text</p></div>
        </section>

JavaScript代码:

$(".menu").delegate("a", "click", function() {
    var dataValue = $(this).data("link");
    var contentDiv = $(".flash");
    var flash = $(contentDiv).find("#RTMPClient");
    if (dataValue=='home') {
        contentDiv.prepend(flash);
    } else {
       contentDiv.detach(flash);
    }

});

有谁能告诉我导致此错误的原因是什么?

1 个答案:

答案 0 :(得分:0)

这不是.detach() docs的工作原理..

它所采用的参数是一个选择器而不是一个元素。该选择器将过滤原始选择(不在其中搜索

例如

$('.someclass').detach('.otherclass')

将分离同时应用了someclassotherclass的元素 otherclass应用的元素与属于someclass的其他元素分开。

您可能想要

flash.detach();

但如果您想稍后重新插入,请将其保存到变量中。

否则只需使用flash.remove()