2011-04-28 67 views
0

我有一个jQuery detach()函数的问题。请参阅Example page。 铬会抛出此错误:jQuery 1.5.2 detach =错误

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

虽然活生生的实例是一个伟大的*辅助*一个问题,总是包括所有在这个问题本身*相关代码*的。这有几个原因。首先,人们不应该遵循链接来帮助你。其次,也许更重要的是,外部链接可以改变,移动或删除,使问题变得无用。 StackOverflow意味着独立,不仅对提问的人有用,而且对将来有大体相同问题的人有用。 – 2011-04-28 13:44:15

+0

什么是'路径'? – 2011-04-28 13:44:47

+0

@ T.J。克劳德:你说得对。 @Jason McCreary:我缩短了代码。所以,路径是从原始代码 – Mika 2011-04-28 13:49:29

回答

0

这不是.detach()docs作品..

需要的参数是如何选择,而不是一个元素。和该选择器将过滤原始选择

里面不搜索)例如

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

将分离同时具有someclassotherclass施加的元件。
It 不是将具有otherclass的元素应用于某个其他元素的类someclass

你可能想要做

flash.detach(); 

,但你应该是保存到一个变量,如果你想重新插入以后的时间。

否则只是使用flash.remove()

+0

遗憾谢谢。我发现了几秒钟的解决方案。但你是对的,我认为这个函数有一个元素... – Mika 2011-04-28 14:33:45