2013-11-14 58 views
0

我有一個簡單的問題。我的JS代碼就是這樣,但是當我嘗試向<div>添加一個新的元素或內容時,它的出現會迅速上升。我不知道爲什麼。簡單的追加問題與jquery

我該如何避免這種情況?

 <head> 
      $(document).ready(function() { 
       $('#mybtn').click(function() { 
        $('#main').append('<button id ="mm" onclick="myfun()">generate code my fun.</button>'); 
       }); 
      }); 
     </head> 
     <body> 
    <form id="form1" runat="server"> 
      <button id ="mybtn">generate code</button> 
      <div id="main"></div> 
</form> 
    </body> 
+0

它似乎工作正常:[http://jsfiddle.net/xCB4a/](http://jsfiddle.net/xCB4a/) – asiviero

+1

你可以嘗試設置按鈕'type',例如:'<按鈕類型=「按鈕」id =「mybtn」>生成代碼'。這將停止提交按鈕。 – Nunners

+0

我可以包含這樣的js代碼。 導致問題? – sakir

回答

1

您應該通過設置按鈕的type到是的button提交表單停止按鈕。

實施例:

<button type="button" id="mybtn">generate code</button> 

用於<button>元素的默認類型是提交。這是導致你的<FORM>標籤提交。

1

試試這個:

$('#mybtn').click(function (e) { 
     e.preventDefault(); 
     $('#main').append('<button id ="mm" onclick="myfun()"> 
generate code my fun </button>'); 
     return false; 
}); 
+0

但是爲什麼會發生這種情況呢,它只是一個簡單的aspx頁面呢?還有其他的一些示例在網上,並且工作正常! – sakir

0

嘗試:

$('#mybtn').click(function (event) { 
     event.preventDefault(); 
     $('#main').append('<button id ="mm" onclick="myfun()"> generate code my fun </button>'); 
}); 

preventDefault如果此方法被調用時,事件的默認動作不會被觸發。