2013-09-24 54 views
-2

我有一個大問題。我試圖附加一個新的div但它不起作用。附加div不工作

我的功能是:

jQuery(function($){ 
    var $meter = $('#analog_meter'), count = 1; 
    $('#addanalog').click(function(e){ 
     e.preventDefault(); 
     if(count > 2){ 
      alert("That's enough already!"); 
      return; 
     } 
     count ++; 

     ($meter.parent()).append($meter.clone()); 
    }); 
}); 

而且我的代碼示例繪製我的模擬儀表:

<div id="add" style="visibility:hidden;" style="display:inline-block;"><a id="addanalog" href="#" Onclick="add_new_analog();">ADD NEW ANALOG</a></div> 

<div id="plot_analog"> 
    <div id="analog_meter" name="analog_meter"> 
     <!-- less information --> 
     <div id="content-two" style="visibility:hidden;"> 
       <div id="chart1" class="jqplot-target"></div> 
       <a id="div-one" href="#" Onclick="mostra1();"><? echo LABEL_MORE_INFORMATION ?></a>&nbsp;&nbsp; &nbsp;&nbsp; 
       <a id="div-two" href="#" Onclick="mostra2();"><? echo LABEL_LESS_INFORMATION ?></a> 
     </div> 
     <!-- more information --> 
     <div id="content-one" style="visibility:hidden;"> 
      <div id="chart2" class="jqplot-target"></div> 
      <a id="div-one" href="#" Onclick="mostra1();"><? echo LABEL_MORE_INFORMATION ?></a>&nbsp;&nbsp; &nbsp;&nbsp; 
      <a id="div-two" href="#" Onclick="mostra2();"><? echo LABEL_LESS_INFORMATION ?></a> 
     </div> 
</div> 

</div> 

發生的事情是,我每次點擊添加新指針時間,畫出兩個模擬米。 這樣的:

我想要的是,點擊添加時,只繪製一個模擬儀表。

任何想法如何幫助我?

+1

這不是* *問題,但是這是* a *問題:你在做什麼會創建一個無效的DOM:你正在克隆一個具有'id'的元素(並且其子元素也有' id's),但在將克隆附加到文檔之前不更改'id'值。 'id'值**必須在頁面上唯一。 –

+0

我該如何解決這個問題? – user2688737

+0

@ user:...更改'id's?根本沒有'身份證'? –

回答

2

你可以嘗試刪除

Onclick="add_new_analog();" 

看到你通過jQuery的掛鉤Click事件。如果add_new_analog()添加了一個模擬,並且您的jQuery函數添加了一個模擬,那麼您最終將添加2.

編輯:@ T.J。 Crowder對於ID有一個很好的觀點。克隆時你應該確保它們保持獨特。

0

您加入2 clickhandlers<a id="addanalog" href="#" Onclick="add_new_analog();">ADD NEW ANALOG</a>

首先在你的JavaScript文件中添加的「代碼隱藏」在onclick標記的處理程序和第二:

$('#addanalog').click(function(e){ // register second click handler 
    e.preventDefault(); 
    if(count > 2){ 
     alert("That's enough already!"); 
     return; 
    } 
    count ++; 

    ($meter.parent()).append($meter.clone()); 
}); 

我認爲最簡單的方法將去除其中一個。

+0

如何?我需要兩個。其中之一,繪製我的模擬儀表。另一方面,添加更多divs ... – user2688737

+0

好吧,也許我不明白。但是'add_new_analog()'是做什麼的。您還沒有發佈此功能/構造函數/事件的代碼 – Martin

+0

function add_new_analog() { \t plotmychart(xmlhttp.responseText); – user2688737