我有一个文档,使用 JQuery的.load()函数将一些内容加载到div中.加载的内容然后尝试从原始文档执行 Javascript.这可能是因为显而易见的原因(我是Javascript新手)失败了.这是简化的代码,说明了
的test.html:
<html> <head> <script src="http://img.558idc.com/uploadfile/allimg/210615/2045304522-0.jpg"></script> <style type="text/css"> div { background: #ccc; margin: 15px; height: 500px; width: 500px; border: 1px solid #666; } </style> </head> <body> <a href="#" class="loader">Load content into box below</a> <div id="loadbox"></div> <script type="text/javascript"> jQuery(document).ready(function() { $('a.loader').click(function() { $('#loadbox').load('loadme.html'); }); $('a.alerter').click(function() { alert("I've been clicked!"); }); }); </script> </body> </html>
loadme.html:
<a href="#" class="alerter">Click me</a> for an alert.
如果我将Javascript放在加载的内容中,则会触发警报,但是我有一大块Javascript,我想使用多个div加载内容,我不想继续加载Javascript.有没有办法从加载的内容中访问原始HTML中的Javascript?我并不完全了解处理内容的顺序,特别是当我将内容加载到页面中时.也许这是我学习的机会!谢谢.
你应该使用 live()或 delegate(),因为你要在文档中添加一个元素(这是针对jQuery< 1.7)jQuery(document).ready(function() { $('a.loader').click(function() { $('#loadbox').load('loadme.html'); }); $('a.alerter').live("click", function() { alert("I've been clicked!"); }); });
对于jQuery> 1.7你应该使用on()并将处理程序委托给正文
jQuery(document).ready(function() { $('a.loader').click(function() { $('#loadbox').load('loadme.html'); }); $('body').on("click", "a.alerter", function() { alert("I've been clicked!"); }); });