我遇到了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);
}
});
有谁能告诉我导致此错误的原因是什么?
答案 0 :(得分:0)
这不是.detach()
docs的工作原理..
它所采用的参数是一个选择器而不是一个元素。该选择器将过滤原始选择(不在其中搜索)
例如
$('.someclass').detach('.otherclass')
将分离同时应用了someclass
和otherclass
的元素
不将otherclass
应用的元素与属于someclass
的其他元素分开。
您可能想要
flash.detach();
但如果您想稍后重新插入,请将其保存到变量中。
否则只需使用flash.remove()