Why click event don`t work when re-append element?
javascript, jquery
Solution
Look the documentation of `.html()`:
When .html() is used to set an element's content, any content that was in that element is completely replaced by the new content. Additionally, jQuery removes other constructs such as data and event handlers from child elements before replacing those elements with the new content.
`holder.html("");` is removing the handler of the button. If you want to keep it you can use `clone` as:
holder.append(btn.clone(true));
holder.html("");
holder.append(btn.clone(true));
Problem
Why click event not work in this code (JSFiddle: http://jsfiddle.net/3WeP5/): ``` var holder = $("<div></div>"); $(document.body).append(holder); var btn = $("<button>Click Here</button>"); btn.click(function(){alert('clicked');}); holder.append(btn); holder.html(""); holder.append(btn); ``` you can replace this line: ``` btn.click(function(){alert('clicked');}); ``` with (Not work again): ``` btn.bind("click",function(){alert('clicked');}); ``` and if i dont use jquery and set javascript event like this, it works fine!! ``` btn[0].onclick=function(){alert('clicked');} ``` Why click event don`t work when i re-append element (button) and how can i fix it?