一,在我们实现动态生成HTML代码时会出现,使用JQ方法会不被执行,解决方法,如下:使用jquery的委托事件,将该方法委托到页面已经存在的一个节点上
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <script src="jquery-1.11.1.js"></script> <script> $(function () { $("#demo").delegate('.t1', 'click', function () { alert("t1"); }); $("#demo").delegate('#t2', 'click', function () { alert("t2"); }); $("#demo").delegate('.t3', 'click', function () { alert("t3"); }); $("#demo").delegate('#t4', 'click', function () { alert("t4"); }); Test(); }); function Test() { var strHtml = "<div class='t1'>t1</div>"; strHtml += "<div id='t2'>t2</div>"; strHtml += "<div class='t3'>t3</div>"; strHtml += "<div id='t4'>t4</div>"; $("#demo").html(strHtml); } </script> </head> <body> <div id="demo"> </div> <div id="demo1"> </div> </body> </html>
二,经过以上测试,得出
1》使用class和id触发的写法是一样的
2》JS动态添加的HTML并不需要在绑定事件的节点内,一样可以触发成功