2011-04-28 63 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